mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 12:28:22 +01:00
Move makeAppIconFor() and removeAppIconFor()
The functions makeAppIconFor and removeAppIconFor are moved from winspector.c to appicon.c, and now are not static. The reason to move these functions is because are used to create and remove app_icons, therefore should be included in this file. Finally, this functions will be updated and splitted in next patches.
This commit is contained in:
committed by
Carlos R. Mafra
parent
01ea1fa8b4
commit
cab8bbc495
@@ -47,7 +47,6 @@
|
||||
#include "dock.h"
|
||||
#include "client.h"
|
||||
#include "wmspec.h"
|
||||
#include "xinerama.h"
|
||||
|
||||
#include <WINGs/WUtil.h>
|
||||
|
||||
@@ -674,71 +673,6 @@ static void saveSettings(WMButton * button, InspectorPanel * panel)
|
||||
WMPLSetCaseSensitive(False);
|
||||
}
|
||||
|
||||
static void makeAppIconFor(WApplication * wapp)
|
||||
{
|
||||
WScreen *scr = wapp->main_window_desc->screen_ptr;
|
||||
|
||||
if (wapp->app_icon)
|
||||
return;
|
||||
|
||||
if (!WFLAGP(wapp->main_window_desc, no_appicon))
|
||||
wapp->app_icon = wAppIconCreate(wapp->main_window_desc);
|
||||
else
|
||||
wapp->app_icon = NULL;
|
||||
|
||||
if (wapp->app_icon) {
|
||||
WIcon *icon = wapp->app_icon->icon;
|
||||
WDock *clip = scr->workspaces[scr->current_workspace]->clip;
|
||||
int x = 0, y = 0;
|
||||
|
||||
wapp->app_icon->main_window = wapp->main_window;
|
||||
|
||||
if (clip && clip->attract_icons && wDockFindFreeSlot(clip, &x, &y)) {
|
||||
wapp->app_icon->attracted = 1;
|
||||
if (!wapp->app_icon->icon->shadowed) {
|
||||
wapp->app_icon->icon->shadowed = 1;
|
||||
wapp->app_icon->icon->force_paint = 1;
|
||||
}
|
||||
wDockAttachIcon(clip, wapp->app_icon, x, y);
|
||||
} else {
|
||||
PlaceIcon(scr, &x, &y, wGetHeadForWindow(wapp->main_window_desc));
|
||||
wAppIconMove(wapp->app_icon, x, y);
|
||||
}
|
||||
if (!clip || !wapp->app_icon->attracted || !clip->collapsed)
|
||||
XMapWindow(dpy, icon->core->window);
|
||||
|
||||
if (wPreferences.auto_arrange_icons && !wapp->app_icon->attracted)
|
||||
wArrangeIcons(wapp->main_window_desc->screen_ptr, True);
|
||||
}
|
||||
}
|
||||
|
||||
static void removeAppIconFor(WApplication * wapp)
|
||||
{
|
||||
if (!wapp->app_icon)
|
||||
return;
|
||||
|
||||
if (wapp->app_icon->docked && !wapp->app_icon->attracted) {
|
||||
wapp->app_icon->running = 0;
|
||||
/* since we keep it, we don't care if it was attracted or not */
|
||||
wapp->app_icon->attracted = 0;
|
||||
wapp->app_icon->icon->shadowed = 0;
|
||||
wapp->app_icon->main_window = None;
|
||||
wapp->app_icon->pid = 0;
|
||||
wapp->app_icon->icon->owner = NULL;
|
||||
wapp->app_icon->icon->icon_win = None;
|
||||
wapp->app_icon->icon->force_paint = 1;
|
||||
wAppIconPaint(wapp->app_icon);
|
||||
} else if (wapp->app_icon->docked) {
|
||||
wapp->app_icon->running = 0;
|
||||
wDockDetach(wapp->app_icon->dock, wapp->app_icon);
|
||||
} else {
|
||||
wAppIconDestroy(wapp->app_icon);
|
||||
}
|
||||
wapp->app_icon = NULL;
|
||||
if (wPreferences.auto_arrange_icons)
|
||||
wArrangeIcons(wapp->main_window_desc->screen_ptr, True);
|
||||
}
|
||||
|
||||
static void applySettings(WMButton * button, InspectorPanel * panel)
|
||||
{
|
||||
WWindow *wwin = panel->inspected;
|
||||
|
||||
Reference in New Issue
Block a user