mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-21 13:28:05 +01:00
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().
This commit is contained in:
committed by
Carlos R. Mafra
parent
f8158d047a
commit
a08adcd283
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user