From a08adcd2835ad6c4d4e21b052376e46b246be15a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20=28kix=29?= Date: Mon, 18 Jun 2012 10:35:18 +0200 Subject: [PATCH] app_icon_create_from_docks moved to appicon.c The function app_icon_create_from_docks is moved to appicon.c, because it is a function to create application icons. The static function findDockIconFor is moved too because it is only used at app_icon_create_from_docks(). --- src/appicon.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++ src/appicon.h | 1 + src/application.c | 51 ---------------------------------------------- 3 files changed, 53 insertions(+), 51 deletions(-) diff --git a/src/appicon.c b/src/appicon.c index 3e391ebf..cccfa6b6 100644 --- a/src/appicon.c +++ b/src/appicon.c @@ -958,3 +958,55 @@ void save_app_icon(WWindow *wwin, WApplication *wapp) if (!tmp || strstr(tmp, "Library/WindowMaker/CachedPixmaps") != NULL) wAppIconSave(wapp->app_icon); } + +static WAppIcon *findDockIconFor(WDock *dock, Window main_window) +{ + WAppIcon *aicon = NULL; + + aicon = wDockFindIconForWindow(dock, main_window); + if (!aicon) { + wDockTrackWindowLaunch(dock, main_window); + aicon = wDockFindIconForWindow(dock, main_window); + } + return aicon; +} + +void app_icon_create_from_docks(WWindow *wwin, WApplication *wapp, Window main_window) +{ + WScreen *scr = wwin->screen_ptr; + + if (scr->last_dock) + wapp->app_icon = findDockIconFor(scr->last_dock, main_window); + + /* check main dock if we did not find it in last dock */ + if (!wapp->app_icon && scr->dock) + wapp->app_icon = findDockIconFor(scr->dock, main_window); + + /* finally check clips */ + if (!wapp->app_icon) { + int i; + for (i = 0; i < scr->workspace_count; i++) { + WDock *dock = scr->workspaces[i]->clip; + if (dock) + wapp->app_icon = findDockIconFor(dock, main_window); + if (wapp->app_icon) + break; + } + } + + /* If created, then set some flags */ + if (wapp->app_icon) { + WWindow *mainw = wapp->main_window_desc; + + wapp->app_icon->running = 1; + wapp->app_icon->icon->force_paint = 1; + wapp->app_icon->icon->owner = mainw; + if (mainw->wm_hints && (mainw->wm_hints->flags & IconWindowHint)) + wapp->app_icon->icon->icon_win = mainw->wm_hints->icon_window; + + wAppIconPaint(wapp->app_icon); + wAppIconSave(wapp->app_icon); + } else { + wapp->app_icon = wAppIconCreate(wapp->main_window_desc); + } +} diff --git a/src/appicon.h b/src/appicon.h index 1f0eb7cd..d532c102 100644 --- a/src/appicon.h +++ b/src/appicon.h @@ -73,6 +73,7 @@ WAppIcon *wAppIconCreate(WWindow *leader_win); WAppIcon *wAppIconCreateForDock(WScreen *scr, char *command, char *wm_instance, char *wm_class, int tile); +void app_icon_create_from_docks(WWindow *wwin, WApplication *wapp, Window main_window); void wAppIconDestroy(WAppIcon *aicon); void wAppIconPaint(WAppIcon *aicon); void wAppIconMove(WAppIcon *aicon, int x, int y); diff --git a/src/application.c b/src/application.c index c3c46d5b..be305b2e 100644 --- a/src/application.c +++ b/src/application.c @@ -77,18 +77,6 @@ WApplication *wApplicationOf(Window window) return wapp; } -static WAppIcon *findDockIconFor(WDock * dock, Window main_window) -{ - WAppIcon *aicon = NULL; - - aicon = wDockFindIconForWindow(dock, main_window); - if (!aicon) { - wDockTrackWindowLaunch(dock, main_window); - aicon = wDockFindIconForWindow(dock, main_window); - } - return aicon; -} - static void extractIcon(WWindow * wwin) { char *progname; @@ -101,45 +89,6 @@ static void extractIcon(WWindow * wwin) wfree(progname); } } -static void app_icon_create_from_docks(WWindow *wwin, WApplication *wapp, Window main_window) -{ - WScreen *scr = wwin->screen_ptr; - - if (scr->last_dock) - wapp->app_icon = findDockIconFor(scr->last_dock, main_window); - - /* check main dock if we did not find it in last dock */ - if (!wapp->app_icon && scr->dock) - wapp->app_icon = findDockIconFor(scr->dock, main_window); - - /* finally check clips */ - if (!wapp->app_icon) { - int i; - for (i = 0; i < scr->workspace_count; i++) { - WDock *dock = scr->workspaces[i]->clip; - if (dock) - wapp->app_icon = findDockIconFor(dock, main_window); - if (wapp->app_icon) - break; - } - } - - /* If created, then set some flags */ - if (wapp->app_icon) { - WWindow *mainw = wapp->main_window_desc; - - wapp->app_icon->running = 1; - wapp->app_icon->icon->force_paint = 1; - wapp->app_icon->icon->owner = mainw; - if (mainw->wm_hints && (mainw->wm_hints->flags & IconWindowHint)) - wapp->app_icon->icon->icon_win = mainw->wm_hints->icon_window; - - wAppIconPaint(wapp->app_icon); - wAppIconSave(wapp->app_icon); - } else { - wapp->app_icon = wAppIconCreate(wapp->main_window_desc); - } -} WApplication *wApplicationCreate(WWindow * wwin) {