---
 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].

Reply via email to