mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 04:48:06 +01:00
few updates
This commit is contained in:
64
NEWS
64
NEWS
@@ -2,7 +2,7 @@
|
|||||||
NEWS for veteran Window Maker users
|
NEWS for veteran Window Maker users
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
--- 0.70.1
|
--- 0.80.0
|
||||||
|
|
||||||
Shading/Unshading windows using mouse wheel on their titlebar
|
Shading/Unshading windows using mouse wheel on their titlebar
|
||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
@@ -23,6 +23,68 @@ Practically speaking, this means that you have to move the mouse wheel up
|
|||||||
or down quickly, like when you want to quickly scroll over something big.
|
or down quickly, like when you want to quickly scroll over something big.
|
||||||
|
|
||||||
|
|
||||||
|
Shared application icons
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Real application icon sharing was implemented in place of the collapse
|
||||||
|
appicon thing. With this applications of the same instance.class will
|
||||||
|
have a single shared application icon and hiding will hide all windows
|
||||||
|
of the aplications attached to that appicon as if there is a single
|
||||||
|
application. This feature is enabled by default for all applications in
|
||||||
|
the global WMWindowAttributes defaults domain using:
|
||||||
|
|
||||||
|
"*" = {SharedAppIcon = Yes;};
|
||||||
|
|
||||||
|
If you're not satisfied with this or want the old behaviour back you
|
||||||
|
can revert this (either in the global domain for all users or in your
|
||||||
|
personal WMWindowAttibutes domain) using SharedAppIcon = No; for "*"
|
||||||
|
It can also be enabled/disabled for individual applications as needed.
|
||||||
|
|
||||||
|
Setting this option can be done using the window's inspector panel in the
|
||||||
|
"Application Specific" section. You can set/unset it for all applications by
|
||||||
|
using the "Defaults for all windows" in the "Window Specification" section
|
||||||
|
|
||||||
|
Basically using this can have 2 major scenarios:
|
||||||
|
1. Leave it on by default, but disable it for the few specific
|
||||||
|
applications that do not behave well with it. (default)
|
||||||
|
2. Leave it off by default, and enable it for all applications for
|
||||||
|
which you want it enabled.
|
||||||
|
|
||||||
|
At this point all applications we tested work ok, some of them even
|
||||||
|
work better with this feature turned on: for example xmms and Corel's
|
||||||
|
WorkPerfect8 now only have 1 appicon (they used to have 2 without this
|
||||||
|
feature).
|
||||||
|
|
||||||
|
This feature is turned off by default for the following applications
|
||||||
|
because it's incompatible with them:
|
||||||
|
1. all GNUstep applications
|
||||||
|
2. applications with an application menu (wterm, Aileron, etc)
|
||||||
|
|
||||||
|
As a side note: wterm can use the shared appicon feature as long as it
|
||||||
|
doesn't use the appmenu (will do this by default). If you start it
|
||||||
|
using the appmenu (wterm -wm) it will disable the shared appicon
|
||||||
|
feature because apps with appmenus are incompatible with this feature.
|
||||||
|
|
||||||
|
If an application is a GNUstep application or if it has an appmenu, it's
|
||||||
|
detected automatically and the shared appicon is disabled automatically
|
||||||
|
without any user intervention or need to configure anything.
|
||||||
|
|
||||||
|
|
||||||
|
Dock/Clip stealing appicons
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
This feature is different form the Clip's "Autoattract Icons" feature
|
||||||
|
as it won't attach any new icon to the dock/clip.
|
||||||
|
What it does, is when you start an application by other means than
|
||||||
|
dock/clip, like for example using the main menu or a terminal, it will
|
||||||
|
search the dock/clips for the presence of an appicon for that
|
||||||
|
application, that is not already running at that moment and will attach
|
||||||
|
the started application to that appicon in the dock/clip if available,
|
||||||
|
making it look like the dock/clip just stole the appicon for the started
|
||||||
|
application. There is an animation for this to offer visual feedback
|
||||||
|
that this happened.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- 0.70.0
|
--- 0.70.0
|
||||||
|
|
||||||
|
|||||||
46
src/dialog.c
46
src/dialog.c
@@ -961,28 +961,50 @@ logoPushCallback(void *data)
|
|||||||
static int oldi = 0;
|
static int oldi = 0;
|
||||||
int len;
|
int len;
|
||||||
static int jingobeu[] = {
|
static int jingobeu[] = {
|
||||||
329, 150, -1, 100, 329, 150, -1, 100, 329, 300, -1, 250,
|
329, 150, -1, 100, 329, 150, -1, 100, 329, 300, -1, 250,
|
||||||
329, 150, -1, 100, 329, 150, -1, 100, 329, 300, -1, 250,
|
329, 150, -1, 100, 329, 150, -1, 100, 329, 300, -1, 250,
|
||||||
329, 150, 392, 150, 261, 150, 293, 150, 329, 400, -1, 400, 0
|
329, 150, 392, 150, 261, 150, 293, 150, 329, 400, -1, 400, 0
|
||||||
};
|
};
|
||||||
static int c = 0;
|
static int c = 0;
|
||||||
|
|
||||||
if (panel->x) {
|
if (panel->x) {
|
||||||
XKeyboardControl kc;
|
XKeyboardControl kc;
|
||||||
|
XKeyboardState ksave;
|
||||||
|
unsigned long mask = KBBellPitch|KBBellDuration|KBBellPercent;
|
||||||
|
|
||||||
|
XGetKeyboardControl(dpy, &ksave);
|
||||||
|
|
||||||
if (panel->x > 0) {
|
if (panel->x > 0) {
|
||||||
if(jingobeu[panel->x-1]==0){panel->x=-1;}else if(jingobeu[panel->x
|
if(jingobeu[panel->x-1]==0) {
|
||||||
-1]<0){panel->x++;c=jingobeu[panel->x-1]/50;panel->x++;}else if(c==0){
|
panel->x=-1;
|
||||||
kc.bell_pitch=jingobeu[panel->x-1];panel->x++;kc.bell_percent=50;c=
|
} else if (jingobeu[panel->x-1]<0) {
|
||||||
jingobeu[panel->x-1]/50;kc.bell_duration=jingobeu[panel->x-1];panel->x++;
|
panel->x++;
|
||||||
XChangeKeyboardControl(dpy,KBBellPitch|KBBellDuration|KBBellPercent,&kc);
|
c=jingobeu[panel->x-1]/50;
|
||||||
XBell(dpy,50);XFlush(dpy);}else{c--;}}
|
panel->x++;
|
||||||
|
} else if (c==0) {
|
||||||
|
kc.bell_percent=50;
|
||||||
|
kc.bell_pitch=jingobeu[panel->x-1];
|
||||||
|
panel->x++;
|
||||||
|
kc.bell_duration=jingobeu[panel->x-1];
|
||||||
|
c=jingobeu[panel->x-1]/50;
|
||||||
|
panel->x++;
|
||||||
|
XChangeKeyboardControl(dpy, mask, &kc);
|
||||||
|
XBell(dpy, 50);
|
||||||
|
XFlush(dpy);
|
||||||
|
} else {
|
||||||
|
c--;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!(panel->cycle % 4)) {
|
if (!(panel->cycle % 4)) {
|
||||||
WMPixmap *p;
|
WMPixmap *p;
|
||||||
|
|
||||||
p = DoXThing(panel->wwin);
|
p = DoXThing(panel->wwin);
|
||||||
WMSetLabelImage(panel->logoL, p);
|
WMSetLabelImage(panel->logoL, p);
|
||||||
}
|
}
|
||||||
|
kc.bell_pitch = ksave.bell_pitch;
|
||||||
|
kc.bell_percent = ksave.bell_percent;
|
||||||
|
kc.bell_duration = ksave.bell_duration;
|
||||||
|
XChangeKeyboardControl(dpy, mask, &kc);
|
||||||
} else if (panel->cycle < 30) {
|
} else if (panel->cycle < 30) {
|
||||||
RImage *image;
|
RImage *image;
|
||||||
WMPixmap *pix;
|
WMPixmap *pix;
|
||||||
@@ -1470,7 +1492,7 @@ wShowInfoPanel(WScreen *scr)
|
|||||||
panel->timer = WMAddTimerHandler(100, logoPushCallback, panel);
|
panel->timer = WMAddTimerHandler(100, logoPushCallback, panel);
|
||||||
panel->cycle = 0;
|
panel->cycle = 0;
|
||||||
panel->x = 1;
|
panel->x = 1;
|
||||||
panel->str = _("Merry X'mas!");
|
panel->str = _("Merry Christmas!");
|
||||||
panel->oldPix = WMRetainPixmap(WMGetLabelImage(panel->logoL));
|
panel->oldPix = WMRetainPixmap(WMGetLabelImage(panel->logoL));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user