diff --git a/ChangeLog b/ChangeLog index f2d3be2e..ca124684 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,10 @@ -Changes since version 0.61.0: +Changes since version 0.61.1: ............................. - fixed bug with menu editor in WPrefs placing cut/paste-ed entries in wrong positions. +- removed "Keep Attracted Icons" option from Clip's menu. See NEWS. + Changes since version 0.61.0: diff --git a/NEWS b/NEWS index 36c434f4..e537945b 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,30 @@ NEWS for veteran Window Maker users ----------------------------------- +--- 0.61.2 + +Removed "Keep Attracted Icons" option from Clip's menu +------------------------------------------------------ + +Since this option brought more confusion than usefulness among users, and +since it was usable only in a very limited context, being able to fill up +the Clip very easily, it was removed. +An alternative way of gaining the same functionality is to use the "Keep icon" +entry in the Clip's main menu. Or select multiple icons before calling that +entry, to make it apply to more than one icon. + +Note: "Keep icon", as the obsoleted "Keep Attracted Icons" had nothing to do + with holding icons in Clip, while the application is running. Once they + are attracted, they are kept until the application close. Using + "Keep icon", will only assure that the icon will be kept, even after the + application is closed. + +Please don't ask for this option back. It's error prone, and very unintuitive. +Considering it's very restrictive usability, and it's very ambiguous topic, it +does not need a special entry in the Clip's menu, taking in count that there +are already better alternative ways of gaining the same functionality. + + --- 0.61.1 New libPropList diff --git a/WindowMaker/Styles/Makefile.in b/WindowMaker/Styles/Makefile.in index f610b7e2..a7d47151 100755 --- a/WindowMaker/Styles/Makefile.in +++ b/WindowMaker/Styles/Makefile.in @@ -94,7 +94,7 @@ wprefsdir = @wprefsdir@ prefsdatadir = $(pkgdatadir)/Styles -prefsdata_DATA = Autumn.style Black.style BlackTexture.style Blue.style BlueDawn.style BlueishGreen.style Brown.style Brownish.style Chumbo.style Copper.style DarkBlue.style DarkRed.style Fire.style Food.style Golden.style Green.style GreyBlue.style Gtk.style LightBlue.style Pastel.style Pink.style Pumpkin.style Purple.style Purplish.style Red.style RednBlue.style Summer.style Traditional.style VioletBlue.style +prefsdata_DATA = Autumn.style Black.style BlackTexture.style Blue.style BlueDawn.style BlueishGreen.style Brown.style Brownish.style Chumbo.style Copper.style DarkBlue.style DarkRed.style Emerald.style Fire.style Food.style Golden.style Green.style GreyBlue.style Gtk.style LightBlue.style Pastel.style Pink.style Pumpkin.style Purple.style Purplish.style Red.style RednBlue.style Spring.style Summer.style Traditional.style VioletBlue.style EXTRA_DIST = $(prefsdata_DATA) diff --git a/src/application.c b/src/application.c index 9386cce9..6281f229 100644 --- a/src/application.c +++ b/src/application.c @@ -376,7 +376,7 @@ wApplicationCreate(WScreen *scr, Window main_window) if (clip && clip->attract_icons && wDockFindFreeSlot(clip, &x, &y)) { wapp->app_icon->attracted = 1; - if (!clip->keep_attracted && !wapp->app_icon->icon->shadowed) { + if (!wapp->app_icon->icon->shadowed) { wapp->app_icon->icon->shadowed = 1; wapp->app_icon->icon->force_paint = 1; /* We don't do an wAppIconPaint() here because it's in @@ -462,9 +462,7 @@ wApplicationDestroy(WApplication *wapp) XDeleteContext(dpy, wapp->main_window, wAppWinContext); wAppMenuDestroy(wapp->menu); if (wapp->app_icon) { - if (wapp->app_icon->docked - && (!wapp->app_icon->attracted || - wapp->app_icon->dock->keep_attracted)) { + if (wapp->app_icon->docked && !wapp->app_icon->attracted) { #ifdef REDUCE_APPICONS if (napps == 0) { #endif diff --git a/src/dock.c b/src/dock.c index a7c86afd..676e7e6e 100644 --- a/src/dock.c +++ b/src/dock.c @@ -102,7 +102,7 @@ static proplist_t dDropCommand=NULL; #endif static proplist_t dAutoLaunch, dName, dForced, dBuggyApplication, dYes, dNo; static proplist_t dHost, dDock, dClip; -static proplist_t dAutoAttractIcons, dKeepAttracted; +static proplist_t dAutoAttractIcons; static proplist_t dPosition, dApplications, dLowered, dCollapsed, dAutoCollapse; @@ -184,7 +184,6 @@ make_keys() dAutoCollapse = PLMakeString("AutoCollapse"); dAutoRaiseLower = PLMakeString("AutoRaiseLower"); dAutoAttractIcons = PLMakeString("AutoAttractIcons"); - dKeepAttracted = PLMakeString("KeepAttracted"); dOmnipresent = PLMakeString("Omnipresent"); @@ -653,6 +652,7 @@ toggleAutoAttractCallback(WMenu *menu, WMenuEntry *entry) } +#if 0 static void toggleKeepCallback(WMenu *menu, WMenuEntry *entry) { @@ -682,6 +682,7 @@ toggleKeepCallback(WMenu *menu, WMenuEntry *entry) wMenuPaint(menu); } +#endif static void @@ -727,7 +728,7 @@ colectIconsCallback(WMenu *menu, WMenuEntry *entry) #endif /* ANIMATIONS */ } aicon->attracted = 1; - if (!clip->keep_attracted && !aicon->icon->shadowed) { + if (!aicon->icon->shadowed) { aicon->icon->shadowed = 1; aicon->icon->force_paint = 1; /* We don't do an wAppIconPaint() here because it's in @@ -1079,11 +1080,6 @@ updateClipOptionsMenu(WMenu *menu, WDock *dock) entry->flags.indicator_on = dock->attract_icons; entry->clientdata = dock; - /* keep attracted icons */ - entry = menu->entries[++index]; - entry->flags.indicator_on = dock->keep_attracted; - entry->clientdata = dock; - menu->flags.realized = 0; wMenuRealize(menu); } @@ -1131,12 +1127,6 @@ makeClipOptionsMenu(WScreen *scr) entry->flags.indicator_on = 1; entry->flags.indicator_type = MI_CHECK; - entry = wMenuAddCallback(menu, _("Keep Attracted Icons"), - toggleKeepCallback, NULL); - entry->flags.indicator = 1; - entry->flags.indicator_on = 1; - entry->flags.indicator_type = MI_CHECK; - menu->flags.realized = 0; wMenuRealize(menu); @@ -1258,7 +1248,6 @@ wDockCreate(WScreen *scr, int type) dock->auto_lower_magic = NULL; dock->auto_raise_magic = NULL; dock->attract_icons = 0; - dock->keep_attracted = 0; dock->lowered = 1; dock->icon_array[0] = btn; wRaiseFrame(btn->icon->core); @@ -1449,7 +1438,7 @@ dockSaveState(WDock *dock) for (i=(dock->type==WM_DOCK ? 0 : 1); imax_icons; i++) { WAppIcon *btn = dock->icon_array[i]; - if (!btn || (btn->attracted && !dock->keep_attracted)) + if (!btn || btn->attracted) continue; if ((icon_info = make_icon_state(dock->icon_array[i]))) { @@ -1492,9 +1481,6 @@ dockSaveState(WDock *dock) value = (dock->attract_icons ? dYes : dNo); PLInsertDictionaryEntry(dock_state, dAutoAttractIcons, value); - - value = (dock->keep_attracted ? dYes : dNo); - PLInsertDictionaryEntry(dock_state, dKeepAttracted, value); } return dock_state; @@ -1894,22 +1880,6 @@ wDockRestoreState(WScreen *scr, proplist_t dock_state, int type) } - /* restore keep attracted icons state */ - - dock->keep_attracted = 0; - - value = PLGetDictionaryEntry(dock_state, dKeepAttracted); - - if (value) { - if (!PLIsString(value)) - COMPLAIN("KeepAttracted"); - else { - if (strcasecmp(PLGetString(value), "YES")==0) - dock->keep_attracted = 1; - } - } - - /* application list */ { @@ -2185,7 +2155,7 @@ wDockAttachIcon(WDock *dock, WAppIcon *icon, int x, int y) char *command=NULL; /* icon->forced_dock = 1;*/ - if (!icon->attracted || dock->type!=WM_CLIP || dock->keep_attracted) { + if (dock->type!=WM_CLIP || !icon->attracted) { icon->editing = 1; if (wInputDialog(dock->screen_ptr, _("Dock Icon"), _("Type the command used to launch the application"), @@ -2376,11 +2346,10 @@ moveIconBetweenDocks(WDock *src, WDock *dest, WAppIcon *icon, int x, int y) icon->icon->core->descriptor.handle_leavenotify = clipLeaveNotify; } - /* set it to be kept when moving to dock, or to a clip that keep the - * attracted icons. + /* set it to be kept when moving to dock. * Unless the icon does not have a command set */ - if (icon->command && (dest->type==WM_DOCK || dest->keep_attracted)) { + if (icon->command && dest->type==WM_DOCK) { icon->attracted = 0; if (icon->icon->shadowed) { icon->icon->shadowed = 0; diff --git a/src/dock.h b/src/dock.h index db444de0..661206eb 100644 --- a/src/dock.h +++ b/src/dock.h @@ -56,7 +56,6 @@ typedef struct WDock { unsigned int mapped:1; unsigned int lowered:1; unsigned int attract_icons:1; /* If clip should attract app-icons */ - unsigned int keep_attracted:1; /* if keep them when application exits*/ unsigned int lclip_button_pushed:1; unsigned int rclip_button_pushed:1; diff --git a/src/winspector.c b/src/winspector.c index 1279841e..dd864018 100644 --- a/src/winspector.c +++ b/src/winspector.c @@ -653,7 +653,7 @@ makeAppIconFor(WApplication *wapp) if (clip && clip->attract_icons && wDockFindFreeSlot(clip, &x, &y)) { wapp->app_icon->attracted = 1; - if (!clip->keep_attracted && !wapp->app_icon->icon->shadowed) { + if (!wapp->app_icon->icon->shadowed) { wapp->app_icon->icon->shadowed = 1; wapp->app_icon->icon->force_paint = 1; } @@ -677,8 +677,7 @@ removeAppIconFor(WApplication *wapp) if (!wapp->app_icon) return; - if (wapp->app_icon->docked && - (!wapp->app_icon->attracted || wapp->app_icon->dock->keep_attracted)) { + 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;