---
WPrefs.app/Expert.c | 14 +++++++++-----
src/WindowMaker.h | 6 +++---
src/actions.c | 8 +++++---
src/appicon.c | 2 ++
src/application.c | 5 -----
src/defaults.c | 2 ++
src/icon.c | 2 --
src/icon.h | 3 +--
src/wconfig.h.in | 3 ---
src/window.c | 3 ++-
10 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/WPrefs.app/Expert.c b/WPrefs.app/Expert.c
index f897384..177bbd8 100644
--- a/WPrefs.app/Expert.c
+++ b/WPrefs.app/Expert.c
@@ -22,9 +22,9 @@
#include "WPrefs.h"
#ifdef XKB_MODELOCK
-#define NUMITEMS 10
+#define NUMITEMS 11
#else
-#define NUMITEMS 9
+#define NUMITEMS 10
#endif
typedef struct _Panel {
@@ -56,8 +56,9 @@ static void showData(_Panel * panel)
WMSetButtonSelected(panel->swi[6], GetBoolForKey("AntialiasedText"));
WMSetButtonSelected(panel->swi[7],
GetBoolForKey("CycleActiveHeadOnly"));
WMSetButtonSelected(panel->swi[8], GetBoolForKey("ShowClipTitle"));
+ WMSetButtonSelected(panel->swi[9], GetBoolForKey("HighlightActiveApp"));
#ifdef XKB_MODELOCK
- WMSetButtonSelected(panel->swi[9], GetBoolForKey("KbdModeLock"));
+ WMSetButtonSelected(panel->swi[10], GetBoolForKey("KbdModeLock"));
#endif /* XKB_MODELOCK */
}
@@ -98,13 +99,15 @@ static void createPanel(Panel * p)
WMSetButtonText(panel->swi[6], _("Smooth font edges (needs restart)."));
WMSetButtonText(panel->swi[7], _("Cycle windows only on the active
head."));
WMSetButtonText(panel->swi[8], _("Show workspace title on Clip."));
+ WMSetButtonText(panel->swi[9], _("Highlight the icon of the application
when it has the focus."));
#ifdef XKB_MODELOCK
- WMSetButtonText(panel->swi[9], _("Enable keyboard language switch
button in window titlebars."));
+ WMSetButtonText(panel->swi[10], _("Enable keyboard language switch
button in window titlebars."));
#endif /* XKB_MODELOCK */
/* If the item is default true, enable the button here */
WMSetButtonEnabled(panel->swi[6], True);
WMSetButtonEnabled(panel->swi[8], True);
+ WMSetButtonEnabled(panel->swi[9], True);
WMMapSubwidgets(panel->box);
WMSetScrollViewContentView(sv, WMWidgetView(f));
@@ -128,8 +131,9 @@ static void storeDefaults(_Panel * panel)
SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "AntialiasedText");
SetBoolForKey(WMGetButtonSelected(panel->swi[7]),
"CycleActiveHeadOnly");
SetBoolForKey(WMGetButtonSelected(panel->swi[8]), "ShowClipTitle");
+ SetBoolForKey(WMGetButtonSelected(panel->swi[9]), "HighlightActiveApp");
#ifdef XKB_MODELOCK
- SetBoolForKey(WMGetButtonSelected(panel->swi[9]), "KbdModeLock");
+ SetBoolForKey(WMGetButtonSelected(panel->swi[10]), "KbdModeLock");
#endif /* XKB_MODELOCK */
}
diff --git a/src/WindowMaker.h b/src/WindowMaker.h
index 804695b..ca89299 100644
--- a/src/WindowMaker.h
+++ b/src/WindowMaker.h
@@ -351,12 +351,12 @@ typedef struct WPreferences {
#endif
char no_dithering; /* use dithering or not */
char no_animations; /* enable/disable animations */
- char no_autowrap; /* wrap workspace when window is moved
- * to the edge */
+ char no_autowrap; /* wrap workspace when window is moved
to the edge */
+ char highlight_active_app; /* show the focused app by highlighting
its icon */
char auto_arrange_icons; /* automagically arrange icons */
char icon_box_position; /* position to place icons */
- signed char iconification_style; /* position to place icons */
+ signed char iconification_style; /* position to place icons */
char disable_root_mouse; /* disable button events in root window
*/
char auto_focus; /* focus window when it's mapped */
char *icon_back_file; /* background image for icons */
diff --git a/src/actions.c b/src/actions.c
index 7dceaff..a79de8a 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -136,7 +136,8 @@ void wSetFocusTo(WScreen *scr, WWindow *wwin)
if (oapp) {
wAppMenuUnmap(oapp->menu);
- wApplicationDeactivate(oapp);
+ if (wPreferences.highlight_active_app)
+ wApplicationDeactivate(oapp);
}
WMPostNotificationName(WMNChangedFocus, NULL, (void *)True);
@@ -199,7 +200,8 @@ void wSetFocusTo(WScreen *scr, WWindow *wwin)
if (oapp && oapp != napp) {
wAppMenuUnmap(oapp->menu);
- wApplicationDeactivate(oapp);
+ if (wPreferences.highlight_active_app)
+ wApplicationDeactivate(oapp);
}
}
@@ -213,7 +215,7 @@ void wSetFocusTo(WScreen *scr, WWindow *wwin)
if (wwin->flags.mapped)
wAppMenuMap(napp->menu, wwin);
}
- if (napp)
+ if (napp && wPreferences.highlight_active_app)
wApplicationActivate(napp);
XFlush(dpy);
diff --git a/src/appicon.c b/src/appicon.c
index ac0c4ba..7b59792 100644
--- a/src/appicon.c
+++ b/src/appicon.c
@@ -243,6 +243,8 @@ void removeAppIconFor(WApplication *wapp)
if (!wapp->app_icon)
return;
+ if (wPreferences.highlight_active_app)
+ wIconSetHighlited(wapp->app_icon->icon, False);
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 */
diff --git a/src/application.c b/src/application.c
index 7c52fa0..b52a35f 100644
--- a/src/application.c
+++ b/src/application.c
@@ -194,7 +194,6 @@ void wApplicationDestroy(WApplication * wapp)
XDeleteContext(dpy, wapp->main_window, wAppWinContext);
wAppMenuDestroy(wapp->menu);
- wApplicationDeactivate(wapp);
/* Remove application icon */
removeAppIconFor(wapp);
@@ -212,20 +211,16 @@ void wApplicationDestroy(WApplication * wapp)
void wApplicationActivate(WApplication *wapp)
{
-#ifdef NEWAPPICON
if (wapp->app_icon) {
wIconSetHighlited(wapp->app_icon->icon, True);
wAppIconPaint(wapp->app_icon);
}
-#endif
}
void wApplicationDeactivate(WApplication *wapp)
{
-#ifdef NEWAPPICON
if (wapp->app_icon) {
wIconSetHighlited(wapp->app_icon->icon, False);
wAppIconPaint(wapp->app_icon);
}
-#endif
}
diff --git a/src/defaults.c b/src/defaults.c
index 5e48d12..e8c33e0 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -416,6 +416,8 @@ WDefaultEntry optionList[] = {
&wPreferences.no_animations, getBool, NULL, NULL, NULL},
{"DontLinkWorkspaces", "NO", NULL,
&wPreferences.no_autowrap, getBool, NULL, NULL, NULL},
+ {"HighlightActiveApp", "YES", NULL,
+ &wPreferences.highlight_active_app, getBool, NULL, NULL, NULL},
{"AutoArrangeIcons", "NO", NULL,
&wPreferences.auto_arrange_icons, getBool, NULL, NULL, NULL},
{"NoWindowOverDock", "NO", NULL,
diff --git a/src/icon.c b/src/icon.c
index 6a0e817..843cb73 100644
--- a/src/icon.c
+++ b/src/icon.c
@@ -554,7 +554,6 @@ static void cycleColor(void *data)
icon->handlerID = WMAddTimerHandler(COLOR_CYCLE_DELAY, cycleColor,
icon);
}
-#ifdef NEWAPPICON
void wIconSetHighlited(WIcon *icon, Bool flag)
{
if (icon->highlighted == flag)
@@ -563,7 +562,6 @@ void wIconSetHighlited(WIcon *icon, Bool flag)
icon->highlighted = flag;
update_icon_pixmap(icon);
}
-#endif
void wIconSelect(WIcon * icon)
{
diff --git a/src/icon.h b/src/icon.h
index dfa30bc..5c83733 100644
--- a/src/icon.h
+++ b/src/icon.h
@@ -70,7 +70,6 @@ RImage *wIconValidateIconSize(RImage *icon, int max_size);
char *wIconStore(WIcon *icon);
char *get_name_for_instance_class(char *wm_instance, char *wm_class);
-#ifdef NEWAPPICON
void wIconSetHighlited(WIcon *icon, Bool flag);
-#endif /* NEWAPPICON */
+
#endif /* WMICON_H_ */
diff --git a/src/wconfig.h.in b/src/wconfig.h.in
index baef446..f4acba8 100644
--- a/src/wconfig.h.in
+++ b/src/wconfig.h.in
@@ -35,9 +35,6 @@
/* If you want animations for iconification, shading, icon arrangement etc. */
#define ANIMATIONS
-/* If you want the application icon to be highlighted when it has the focus */
-#define NEWAPPICON
-
/* support for XDND drop in the Dock. Experimental */
/*#define XDND*/
diff --git a/src/window.c b/src/window.c
index b07d9d4..0836267 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1646,7 +1646,8 @@ void wUnmanageWindow(WWindow *wwin, Bool restore, Bool
destroyed)
WApplication *napp = scr->focused_window ?
wApplicationOf(scr->focused_window->main_window) : NULL;
if (oapp && oapp != napp) {
wAppMenuUnmap(oapp->menu);
- wApplicationDeactivate(oapp);
+ if (wPreferences.highlight_active_app)
+ wApplicationDeactivate(oapp);
}
wNETCleanupFrameExtents(wwin);
--
1.7.10
--
To unsubscribe, send mail to [email protected].