|
|
WMSetButtonSelected(panel->swi[4], GetBoolForKey("DontConfirmKill")); | WMSetButtonSelected(panel->swi[4], GetBoolForKey("DontConfirmKill")); |
WMSetButtonSelected(panel->swi[5], GetBoolForKey("DisableBlinking")); | WMSetButtonSelected(panel->swi[5], GetBoolForKey("DisableBlinking")); |
WMSetButtonSelected(panel->swi[6], GetBoolForKey("AntialiasedText")); | WMSetButtonSelected(panel->swi[6], GetBoolForKey("AntialiasedText")); |
|
WMSetButtonSelected(panel->swi[7], GetBoolForKey("DCMaximize")); |
|
WMSetButtonSelected(panel->swi[8], GetBoolForKey("SingleClickLaunch")); |
} | } |
| |
|
|
static void | static void |
createPanel(Panel *p) | createPanel(Panel *p) |
{ | { |
|
|
panel->box = WMCreateBox(panel->parent); | panel->box = WMCreateBox(panel->parent); |
WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); | WMSetViewExpandsToParent(WMWidgetView(panel->box), 2, 2, 2, 2); |
| |
for (i=0; i<7; i++) { |
for (i=0; i<9; i++) { |
panel->swi[i] = WMCreateSwitchButton(panel->box); | panel->swi[i] = WMCreateSwitchButton(panel->box); |
WMResizeWidget(panel->swi[i], FRAME_WIDTH-40, 25); | WMResizeWidget(panel->swi[i], FRAME_WIDTH-40, 25); |
WMMoveWidget(panel->swi[i], 20, 20+i*25); |
WMMoveWidget(panel->swi[i], 20, 20+i*23); |
} | } |
| |
WMSetButtonText(panel->swi[0], _("Disable miniwindows (icons for minimized windows). For use with KDE/GNOME.")); | WMSetButtonText(panel->swi[0], _("Disable miniwindows (icons for minimized windows). For use with KDE/GNOME.")); |
|
|
WMSetButtonText(panel->swi[6], _("Smooth font edges (needs restart).")); | WMSetButtonText(panel->swi[6], _("Smooth font edges (needs restart).")); |
| |
WMSetButtonEnabled(panel->swi[6], True); | WMSetButtonEnabled(panel->swi[6], True); |
|
WMSetButtonText(panel->swi[7], _("Double click on title bar maximize")); |
|
WMSetButtonText(panel->swi[8], _("Launch applications and restore windows with a single click")); |
|
|
| |
WMRealizeWidget(panel->box); | WMRealizeWidget(panel->box); |
WMMapSubwidgets(panel->box); | WMMapSubwidgets(panel->box); |
|
|
SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "DontConfirmKill"); | SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "DontConfirmKill"); |
SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DisableBlinking"); | SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DisableBlinking"); |
SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "AntialiasedText"); | SetBoolForKey(WMGetButtonSelected(panel->swi[6]), "AntialiasedText"); |
|
SetBoolForKey(WMGetButtonSelected(panel->swi[7]), "DCMaximize"); |
|
SetBoolForKey(WMGetButtonSelected(panel->swi[8]), "SingleClickLaunch"); |
} | } |
| |
| |
|
|
/* shading animation */ | /* shading animation */ |
signed char shade_speed; | signed char shade_speed; |
| |
|
/* double click on title bar maximize */ |
|
char dc_maximize; |
|
|
|
/* single click to lauch applications */ |
|
char single_click; |
|
|
int edge_resistance; | int edge_resistance; |
char attract; | char attract; |
| |
|
|
int shad_x = 0, shad_y = 0, docking=0, dockable, collapsed = 0; | int shad_x = 0, shad_y = 0, docking=0, dockable, collapsed = 0; |
int ix, iy; | int ix, iy; |
int clickButton = event->xbutton.button; | int clickButton = event->xbutton.button; |
|
Bool hasMoved = False; |
Pixmap ghost = None; | Pixmap ghost = None; |
Window wins[2]; | Window wins[2]; |
Bool movingSingle = False; | Bool movingSingle = False; |
|
|
break; | break; |
| |
case MotionNotify: | case MotionNotify: |
|
hasMoved = True; |
if (!grabbed) { | if (!grabbed) { |
if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD | if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD |
|| abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) { | || abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) { |
|
|
if (wPreferences.auto_arrange_icons) | if (wPreferences.auto_arrange_icons) |
wArrangeIcons(scr, True); | wArrangeIcons(scr, True); |
| |
|
if (!hasMoved && wPreferences.single_click) |
|
iconDblClick(desc, event); |
|
|
done = 1; | done = 1; |
break; | break; |
} | } |
|
|
{"DisableBlinking", "NO", NULL, | {"DisableBlinking", "NO", NULL, |
&wPreferences.dont_blink, getBool, NULL | &wPreferences.dont_blink, getBool, NULL |
}, | }, |
|
{"DCMaximize", "NO", NULL, |
|
&wPreferences.dc_maximize, getBool, NULL |
|
}, |
|
{"SingleClickLaunch", "NO", NULL, |
|
&wPreferences.single_click, getBool, NULL |
|
}, |
/* style options */ | /* style options */ |
{"MenuStyle", "normal", seMenuStyles, | {"MenuStyle", "normal", seMenuStyles, |
&wPreferences.menu_style, getEnum, setMenuStyle | &wPreferences.menu_style, getEnum, setMenuStyle |
|
|
| |
| |
| |
static void |
static Bool |
handleIconMove(WDock *dock, WAppIcon *aicon, XEvent *event) | handleIconMove(WDock *dock, WAppIcon *aicon, XEvent *event) |
{ | { |
WScreen *scr = dock->screen_ptr; | WScreen *scr = dock->screen_ptr; |
|
|
int tmp; | int tmp; |
Pixmap ghost = None; | Pixmap ghost = None; |
Bool docked; | Bool docked; |
|
Bool hasMoved = False; |
int superfluous = wPreferences.superfluous; /* we catch it to avoid problems */ | int superfluous = wPreferences.superfluous; /* we catch it to avoid problems */ |
int omnipresent = aicon->omnipresent; /* this must be cached!!! */ | int omnipresent = aicon->omnipresent; /* this must be cached!!! */ |
| |
|
|
break; | break; |
| |
case MotionNotify: | case MotionNotify: |
|
hasMoved = True; |
if (!grabbed) { | if (!grabbed) { |
if (abs(ofs_x-ev.xmotion.x)>=MOVE_THRESHOLD | if (abs(ofs_x-ev.xmotion.x)>=MOVE_THRESHOLD |
|| abs(ofs_y-ev.xmotion.y)>=MOVE_THRESHOLD) { | || abs(ofs_y-ev.xmotion.y)>=MOVE_THRESHOLD) { |
|
|
#ifdef DEBUG | #ifdef DEBUG |
puts("End icon move"); | puts("End icon move"); |
#endif | #endif |
return; |
return hasMoved; |
} | } |
} | } |
} | } |
|
|
if (getClipButton(event->xbutton.x, event->xbutton.y)!=CLIP_IDLE | if (getClipButton(event->xbutton.x, event->xbutton.y)!=CLIP_IDLE |
&& dock->type==WM_CLIP) | && dock->type==WM_CLIP) |
handleClipChangeWorkspace(scr, event); | handleClipChangeWorkspace(scr, event); |
else |
else |
handleDockMove(dock, aicon, event); |
handleDockMove(dock, aicon, event); |
} else |
} else { |
handleIconMove(dock, aicon, event); |
Bool hasMoved = handleIconMove(dock, aicon, event); |
|
if (!hasMoved && wPreferences.single_click) |
|
iconDblClick(desc, event); |
|
} |
| |
} else if (event->xbutton.button==Button2 && dock->type==WM_CLIP && | } else if (event->xbutton.button==Button2 && dock->type==WM_CLIP && |
aicon==scr->clip_icon) { | aicon==scr->clip_icon) { |
|
|
int dx=event->xbutton.x, dy=event->xbutton.y; | int dx=event->xbutton.x, dy=event->xbutton.y; |
int grabbed=0; | int grabbed=0; |
int clickButton=event->xbutton.button; | int clickButton=event->xbutton.button; |
|
Bool hasMoved = False; |
| |
if (WCHECK_STATE(WSTATE_MODAL)) | if (WCHECK_STATE(WSTATE_MODAL)) |
return; | return; |
|
|
break; | break; |
| |
case MotionNotify: | case MotionNotify: |
|
hasMoved = True; |
if (!grabbed) { | if (!grabbed) { |
if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD | if (abs(dx-ev.xmotion.x)>=MOVE_THRESHOLD |
|| abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) { | || abs(dy-ev.xmotion.y)>=MOVE_THRESHOLD) { |
|
|
| |
if (wPreferences.auto_arrange_icons) | if (wPreferences.auto_arrange_icons) |
wArrangeIcons(wwin->screen_ptr, True); | wArrangeIcons(wwin->screen_ptr, True); |
|
if (!hasMoved && wPreferences.single_click) |
|
miniwindowDblClick(desc, event); |
|
|
return; | return; |
| |
} | } |
|
|
| |
if (event->xbutton.button==Button1) { | if (event->xbutton.button==Button1) { |
if (event->xbutton.state == 0) { | if (event->xbutton.state == 0) { |
if (!WFLAGP(wwin, no_shadeable)) { |
/* check preferences, maximize or shade */ |
|
if (wPreferences.dc_maximize) { |
|
if (!WFLAGP(wwin, no_resizable)) { |
|
/* maximize window */ |
|
if (wwin->flags.maximized != 0) { |
|
wUnmaximizeWindow(wwin); |
|
wwin->flags.maximized = 0; |
|
} |
|
else { |
|
wMaximizeWindow(wwin, MAX_VERTICAL|MAX_HORIZONTAL); |
|
wwin->flags.maximized = MAX_VERTICAL|MAX_HORIZONTAL; |
|
} |
|
} |
|
} |
|
else { |
|
if (!WFLAGP(wwin, no_shadeable)) { |
/* shade window */ | /* shade window */ |
if (wwin->flags.shaded) | if (wwin->flags.shaded) |
wUnshadeWindow(wwin); |
wUnshadeWindow(wwin); |
else | else |
wShadeWindow(wwin); |
wShadeWindow(wwin); |
} |
} |
|
} |
} else { | } else { |
int dir = 0; | int dir = 0; |
| |