mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 20:38:08 +01:00
wIconUpdate image preselected
The function wIconUpdate can receive a image to setup as icon image. If image is NULL, then use the original method, using different procedures to get the image.
This commit is contained in:
committed by
Carlos R. Mafra
parent
faa74a14b1
commit
522d84b0ef
@@ -151,7 +151,7 @@ void makeAppIconFor(WApplication *wapp)
|
|||||||
|
|
||||||
/* Create the icon */
|
/* Create the icon */
|
||||||
wapp->app_icon = wAppIconCreate(wapp->main_window_desc);
|
wapp->app_icon = wAppIconCreate(wapp->main_window_desc);
|
||||||
wIconUpdate(wapp->app_icon->icon);
|
wIconUpdate(wapp->app_icon->icon, NULL);
|
||||||
|
|
||||||
/* Now, paint the icon */
|
/* Now, paint the icon */
|
||||||
if (!WFLAGP(wapp->main_window_desc, no_appicon))
|
if (!WFLAGP(wapp->main_window_desc, no_appicon))
|
||||||
@@ -256,7 +256,7 @@ void removeAppIconFor(WApplication *wapp)
|
|||||||
wapp->app_icon->icon->icon_win = None;
|
wapp->app_icon->icon->icon_win = None;
|
||||||
|
|
||||||
/* Update the icon images */
|
/* Update the icon images */
|
||||||
wIconUpdate(wapp->app_icon->icon);
|
wIconUpdate(wapp->app_icon->icon, NULL);
|
||||||
|
|
||||||
/* Paint it */
|
/* Paint it */
|
||||||
wAppIconPaint(wapp->app_icon);
|
wAppIconPaint(wapp->app_icon);
|
||||||
@@ -991,7 +991,7 @@ void create_appicon_from_dock(WWindow *wwin, WApplication *wapp, Window main_win
|
|||||||
wapp->app_icon->icon->icon_win = mainw->wm_hints->icon_window;
|
wapp->app_icon->icon->icon_win = mainw->wm_hints->icon_window;
|
||||||
|
|
||||||
/* Update the icon images */
|
/* Update the icon images */
|
||||||
wIconUpdate(wapp->app_icon->icon);
|
wIconUpdate(wapp->app_icon->icon, NULL);
|
||||||
|
|
||||||
/* Paint it */
|
/* Paint it */
|
||||||
wAppIconPaint(wapp->app_icon);
|
wAppIconPaint(wapp->app_icon);
|
||||||
|
|||||||
@@ -482,11 +482,11 @@ void wClientCheckProperty(WWindow * wwin, XPropertyEvent * event)
|
|||||||
WApplication *wapp;
|
WApplication *wapp;
|
||||||
|
|
||||||
if (wwin->flags.miniaturized && wwin->icon) {
|
if (wwin->flags.miniaturized && wwin->icon) {
|
||||||
wIconUpdate(wwin->icon);
|
wIconUpdate(wwin->icon, NULL);
|
||||||
}
|
}
|
||||||
wapp = wApplicationOf(wwin->main_window);
|
wapp = wApplicationOf(wwin->main_window);
|
||||||
if (wapp && wapp->app_icon) {
|
if (wapp && wapp->app_icon) {
|
||||||
wIconUpdate(wapp->app_icon->icon);
|
wIconUpdate(wapp->app_icon->icon, NULL);
|
||||||
wAppIconPaint(wapp->app_icon);
|
wAppIconPaint(wapp->app_icon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -541,7 +541,7 @@ static void keepIconsCallback(WMenu *menu, WMenuEntry *entry)
|
|||||||
aicon->icon->shadowed = 0;
|
aicon->icon->shadowed = 0;
|
||||||
|
|
||||||
/* Update the icon images */
|
/* Update the icon images */
|
||||||
wIconUpdate(aicon->icon);
|
wIconUpdate(aicon->icon, NULL);
|
||||||
|
|
||||||
/* Paint it */
|
/* Paint it */
|
||||||
wAppIconPaint(aicon);
|
wAppIconPaint(aicon);
|
||||||
@@ -1938,7 +1938,7 @@ Bool wDockAttachIcon(WDock *dock, WAppIcon *icon, int x, int y, Bool update_icon
|
|||||||
|
|
||||||
/* Update the icon images */
|
/* Update the icon images */
|
||||||
if (lupdate_icon)
|
if (lupdate_icon)
|
||||||
wIconUpdate(icon->icon);
|
wIconUpdate(icon->icon, NULL);
|
||||||
|
|
||||||
/* Paint it */
|
/* Paint it */
|
||||||
wAppIconPaint(icon);
|
wAppIconPaint(icon);
|
||||||
@@ -2089,7 +2089,7 @@ static Bool moveIconBetweenDocks(WDock *src, WDock *dest, WAppIcon *icon, int x,
|
|||||||
|
|
||||||
/* Update the icon images */
|
/* Update the icon images */
|
||||||
if (update_icon)
|
if (update_icon)
|
||||||
wIconUpdate(icon->icon);
|
wIconUpdate(icon->icon, NULL);
|
||||||
|
|
||||||
/* Paint it */
|
/* Paint it */
|
||||||
wAppIconPaint(icon);
|
wAppIconPaint(icon);
|
||||||
@@ -2166,7 +2166,7 @@ void wDockDetach(WDock *dock, WAppIcon *icon)
|
|||||||
|
|
||||||
/* Update the icon images */
|
/* Update the icon images */
|
||||||
if (update_icon)
|
if (update_icon)
|
||||||
wIconUpdate(icon->icon);
|
wIconUpdate(icon->icon, NULL);
|
||||||
|
|
||||||
/* Paint it */
|
/* Paint it */
|
||||||
wAppIconPaint(icon);
|
wAppIconPaint(icon);
|
||||||
|
|||||||
46
src/icon.c
46
src/icon.c
@@ -94,7 +94,7 @@ static void tileObserver(void *self, WMNotification *notif)
|
|||||||
{
|
{
|
||||||
WIcon *icon = (WIcon *) self;
|
WIcon *icon = (WIcon *) self;
|
||||||
|
|
||||||
wIconUpdate(icon);
|
wIconUpdate(icon, NULL);
|
||||||
|
|
||||||
XClearArea(dpy, icon->core->window, 0, 0, 1, 1, True);
|
XClearArea(dpy, icon->core->window, 0, 0, 1, 1, True);
|
||||||
}
|
}
|
||||||
@@ -152,7 +152,7 @@ WIcon *icon_create_for_wwindow(WWindow *wwin)
|
|||||||
|
|
||||||
icon->tile_type = TILE_NORMAL;
|
icon->tile_type = TILE_NORMAL;
|
||||||
|
|
||||||
wIconUpdate(icon);
|
wIconUpdate(icon, NULL);
|
||||||
|
|
||||||
WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon);
|
WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon);
|
||||||
WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon);
|
WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon);
|
||||||
@@ -177,7 +177,7 @@ WIcon *icon_create_for_dock(WScreen *scr, char *command, char *wm_instance, char
|
|||||||
|
|
||||||
icon->tile_type = tile;
|
icon->tile_type = tile;
|
||||||
|
|
||||||
wIconUpdate(icon);
|
wIconUpdate(icon, NULL);
|
||||||
|
|
||||||
WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon);
|
WMAddNotificationObserver(appearanceObserver, icon, WNIconAppearanceSettingsChanged, icon);
|
||||||
WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon);
|
WMAddNotificationObserver(tileObserver, icon, WNIconTileSettingsChanged, icon);
|
||||||
@@ -346,7 +346,7 @@ void wIconChangeTitle(WIcon *icon, char *new_title)
|
|||||||
icon->icon_name = new_title;
|
icon->icon_name = new_title;
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
wIconUpdate(icon);
|
wIconUpdate(icon, NULL);
|
||||||
else
|
else
|
||||||
wIconPaint(icon);
|
wIconPaint(icon);
|
||||||
}
|
}
|
||||||
@@ -400,7 +400,7 @@ Bool wIconChangeImageFile(WIcon *icon, char *file)
|
|||||||
/* Set the new image */
|
/* Set the new image */
|
||||||
icon->file_image = image;
|
icon->file_image = image;
|
||||||
icon->file = wstrdup(path);
|
icon->file = wstrdup(path);
|
||||||
wIconUpdate(icon);
|
wIconUpdate(icon, NULL);
|
||||||
} else {
|
} else {
|
||||||
error = 1;
|
error = 1;
|
||||||
}
|
}
|
||||||
@@ -597,26 +597,30 @@ static void unset_icon_image(WIcon *icon)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wIconUpdate(WIcon *icon)
|
void wIconUpdate(WIcon *icon, RImage *image)
|
||||||
{
|
{
|
||||||
WWindow *wwin = icon->owner;
|
WWindow *wwin = icon->owner;
|
||||||
|
|
||||||
if (wwin && WFLAGP(wwin, always_user_icon)) {
|
if (image) {
|
||||||
/* Forced use user_icon */
|
icon->file_image = image;
|
||||||
get_rimage_icon_from_user_icon(icon);
|
|
||||||
} else if (icon->icon_win != None) {
|
|
||||||
/* Get the Pixmap from the WIcon */
|
|
||||||
get_rimage_icon_from_icon_win(icon);
|
|
||||||
} else if (wwin && wwin->net_icon_image) {
|
|
||||||
/* Use _NET_WM_ICON icon */
|
|
||||||
get_rimage_icon_from_x11(icon);
|
|
||||||
} else if (wwin && wwin->wm_hints && (wwin->wm_hints->flags & IconPixmapHint)) {
|
|
||||||
/* Get the Pixmap from the wm_hints, else, from the user */
|
|
||||||
if (get_rimage_icon_from_wm_hints(icon))
|
|
||||||
get_rimage_icon_from_user_icon(icon);
|
|
||||||
} else {
|
} else {
|
||||||
/* Get the Pixmap from the user */
|
if (wwin && WFLAGP(wwin, always_user_icon)) {
|
||||||
get_rimage_icon_from_user_icon(icon);
|
/* Forced use user_icon */
|
||||||
|
get_rimage_icon_from_user_icon(icon);
|
||||||
|
} else if (icon->icon_win != None) {
|
||||||
|
/* Get the Pixmap from the WIcon */
|
||||||
|
get_rimage_icon_from_icon_win(icon);
|
||||||
|
} else if (wwin && wwin->net_icon_image) {
|
||||||
|
/* Use _NET_WM_ICON icon */
|
||||||
|
get_rimage_icon_from_x11(icon);
|
||||||
|
} else if (wwin && wwin->wm_hints && (wwin->wm_hints->flags & IconPixmapHint)) {
|
||||||
|
/* Get the Pixmap from the wm_hints, else, from the user */
|
||||||
|
if (get_rimage_icon_from_wm_hints(icon))
|
||||||
|
get_rimage_icon_from_user_icon(icon);
|
||||||
|
} else {
|
||||||
|
/* Get the Pixmap from the user */
|
||||||
|
get_rimage_icon_from_user_icon(icon);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
update_icon_pixmap(icon);
|
update_icon_pixmap(icon);
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ WIcon *icon_create_for_wwindow(WWindow *wwin);
|
|||||||
|
|
||||||
void wIconDestroy(WIcon *icon);
|
void wIconDestroy(WIcon *icon);
|
||||||
void wIconPaint(WIcon *icon);
|
void wIconPaint(WIcon *icon);
|
||||||
void wIconUpdate(WIcon *icon);
|
void wIconUpdate(WIcon *icon, RImage *image);
|
||||||
void wIconSelect(WIcon *icon);
|
void wIconSelect(WIcon *icon);
|
||||||
void wIconChangeTitle(WIcon *icon, char *new_title);
|
void wIconChangeTitle(WIcon *icon, char *new_title);
|
||||||
void update_icon_pixmap(WIcon *icon);
|
void update_icon_pixmap(WIcon *icon);
|
||||||
|
|||||||
@@ -468,12 +468,12 @@ static void updateIconImage(WWindow *wwin)
|
|||||||
|
|
||||||
/* Refresh the Window Icon */
|
/* Refresh the Window Icon */
|
||||||
if (wwin->icon)
|
if (wwin->icon)
|
||||||
wIconUpdate(wwin->icon);
|
wIconUpdate(wwin->icon, NULL);
|
||||||
|
|
||||||
/* Refresh the application icon */
|
/* Refresh the application icon */
|
||||||
WApplication *app = wApplicationOf(wwin->main_window);
|
WApplication *app = wApplicationOf(wwin->main_window);
|
||||||
if (app && app->app_icon) {
|
if (app && app->app_icon) {
|
||||||
wIconUpdate(app->app_icon->icon);
|
wIconUpdate(app->app_icon->icon, NULL);
|
||||||
wAppIconPaint(app->app_icon);
|
wAppIconPaint(app->app_icon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user