mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 04:48:06 +01:00
Changes relate to modelock.
This commit is contained in:
326
src/framewin.c
326
src/framewin.c
@@ -144,6 +144,16 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags)
|
||||
if (fwin->left_button) {
|
||||
wCoreConfigure(fwin->left_button, 0, 0, bsize, bsize);
|
||||
}
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button)
|
||||
if (fwin->flags.hide_left_button || !fwin->left_button
|
||||
|| fwin->flags.lbutton_dont_fit) {
|
||||
wCoreConfigure(fwin->thai_button, 0, 0, bsize, bsize);
|
||||
} else {
|
||||
wCoreConfigure(fwin->thai_button, bsize, 0, bsize, bsize);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
if (fwin->right_button) {
|
||||
wCoreConfigure(fwin->right_button, width-bsize+1,
|
||||
@@ -154,6 +164,14 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags)
|
||||
wCoreConfigure(fwin->left_button, 3, (theight-bsize)/2,
|
||||
bsize, bsize);
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button) {
|
||||
wCoreConfigure(fwin->thai_button, 6 + bsize, (theight-bsize)/2,
|
||||
bsize, bsize);
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
if (fwin->right_button) {
|
||||
wCoreConfigure(fwin->right_button, width-bsize-3,
|
||||
@@ -164,16 +182,25 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags)
|
||||
} else {
|
||||
/* we had a titlebar, but now we don't need it anymore */
|
||||
for (i=0; i < (fwin->flags.single_texture ? 1 : 3); i++) {
|
||||
FREE_PIXMAP(fwin->title_back[i]);
|
||||
if (wPreferences.new_style) {
|
||||
FREE_PIXMAP(fwin->lbutton_back[i]);
|
||||
FREE_PIXMAP(fwin->rbutton_back[i]);
|
||||
}
|
||||
FREE_PIXMAP(fwin->title_back[i]);
|
||||
if (wPreferences.new_style) {
|
||||
FREE_PIXMAP(fwin->lbutton_back[i]);
|
||||
FREE_PIXMAP(fwin->rbutton_back[i]);
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
FREE_PIXMAP(fwin->tbutton_back[i]);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if (fwin->left_button)
|
||||
wCoreDestroy(fwin->left_button);
|
||||
fwin->left_button = NULL;
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button)
|
||||
wCoreDestroy(fwin->thai_button);
|
||||
fwin->thai_button = NULL;
|
||||
#endif
|
||||
|
||||
if (fwin->right_button)
|
||||
wCoreDestroy(fwin->right_button);
|
||||
fwin->right_button = NULL;
|
||||
@@ -193,31 +220,59 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags)
|
||||
fwin->titlebar = wCoreCreate(fwin->core, 0, 0, width+1, theight);
|
||||
|
||||
if (flags & WFF_LEFT_BUTTON) {
|
||||
fwin->flags.left_button = 1;
|
||||
if (wPreferences.new_style) {
|
||||
fwin->left_button = wCoreCreate(fwin->core, 0, 0,
|
||||
bsize, bsize);
|
||||
if (width < theight*4) {
|
||||
fwin->flags.lbutton_dont_fit = 1;
|
||||
} else {
|
||||
XMapRaised(dpy, fwin->left_button->window);
|
||||
}
|
||||
fwin->flags.left_button = 1;
|
||||
if (wPreferences.new_style) {
|
||||
fwin->left_button = wCoreCreate(fwin->core, 0, 0,
|
||||
bsize, bsize);
|
||||
if (width < theight*4) {
|
||||
fwin->flags.lbutton_dont_fit = 1;
|
||||
} else {
|
||||
fwin->left_button =
|
||||
wCoreCreate(fwin->titlebar, 3, (theight-bsize)/2,
|
||||
bsize, bsize);
|
||||
|
||||
XSetWindowBackground(dpy, fwin->left_button->window,
|
||||
scr->widget_texture->normal.pixel);
|
||||
|
||||
if (width < theight*3) {
|
||||
fwin->flags.lbutton_dont_fit = 1;
|
||||
} else {
|
||||
XMapRaised(dpy, fwin->left_button->window);
|
||||
}
|
||||
XMapRaised(dpy, fwin->left_button->window);
|
||||
}
|
||||
} else {
|
||||
fwin->left_button =
|
||||
wCoreCreate(fwin->titlebar, 3, (theight-bsize)/2,
|
||||
bsize, bsize);
|
||||
|
||||
XSetWindowBackground(dpy, fwin->left_button->window,
|
||||
scr->widget_texture->normal.pixel);
|
||||
|
||||
if (width < theight*3) {
|
||||
fwin->flags.lbutton_dont_fit = 1;
|
||||
} else {
|
||||
XMapRaised(dpy, fwin->left_button->window);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (flags & WFF_THAI_BUTTON) {
|
||||
fwin->flags.thai_button = 1;
|
||||
if (wPreferences.new_style) {
|
||||
fwin->thai_button = wCoreCreate(fwin->core,
|
||||
bsize, 0, bsize, bsize);
|
||||
|
||||
if (width < theight*4) {
|
||||
fwin->flags.tbutton_dont_fit = 1;
|
||||
} else {
|
||||
XMapRaised(dpy, fwin->thai_button->window);
|
||||
}
|
||||
} else {
|
||||
fwin->thai_button =
|
||||
wCoreCreate(fwin->titlebar, bsize + 6, (theight-bsize)/2,
|
||||
bsize, bsize);
|
||||
|
||||
XSetWindowBackground(dpy, fwin->thai_button->window,
|
||||
scr->widget_texture->normal.pixel);
|
||||
|
||||
if (width < theight*3) {
|
||||
fwin->flags.tbutton_dont_fit = 1;
|
||||
} else {
|
||||
XMapRaised(dpy, fwin->thai_button->window);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (flags & WFF_RIGHT_BUTTON) {
|
||||
fwin->flags.right_button = 1;
|
||||
@@ -316,6 +371,16 @@ wFrameWindowUpdateBorders(WFrameWindow *fwin, int flags)
|
||||
fwin->left_button->descriptor.handle_mousedown = buttonMouseDown;
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button) {
|
||||
fwin->thai_button->descriptor.handle_expose = handleButtonExpose;
|
||||
fwin->thai_button->descriptor.parent = fwin;
|
||||
fwin->thai_button->descriptor.parent_type = WCLASS_FRAME;
|
||||
fwin->thai_button->descriptor.handle_mousedown = buttonMouseDown;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
if (fwin->right_button) {
|
||||
fwin->right_button->descriptor.parent = fwin;
|
||||
fwin->right_button->descriptor.parent_type = WCLASS_FRAME;
|
||||
@@ -336,6 +401,11 @@ wFrameWindowDestroy(WFrameWindow *fwin)
|
||||
if (fwin->left_button)
|
||||
wCoreDestroy(fwin->left_button);
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button)
|
||||
wCoreDestroy(fwin->thai_button);
|
||||
#endif
|
||||
|
||||
if (fwin->right_button)
|
||||
wCoreDestroy(fwin->right_button);
|
||||
|
||||
@@ -356,6 +426,9 @@ wFrameWindowDestroy(WFrameWindow *fwin)
|
||||
FREE_PIXMAP(fwin->title_back[i]);
|
||||
if (wPreferences.new_style) {
|
||||
FREE_PIXMAP(fwin->lbutton_back[i]);
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
FREE_PIXMAP(fwin->tbutton_back[i]);
|
||||
#endif
|
||||
FREE_PIXMAP(fwin->rbutton_back[i]);
|
||||
}
|
||||
}
|
||||
@@ -392,11 +465,50 @@ updateTitlebar(WFrameWindow *fwin)
|
||||
if (fwin->flags.hide_left_button || !fwin->left_button
|
||||
|| fwin->flags.lbutton_dont_fit) {
|
||||
x = 0;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if(fwin->thai_button)
|
||||
wCoreConfigure(fwin->thai_button, 0, 0,
|
||||
fwin->thai_button->width,
|
||||
fwin->thai_button->width);
|
||||
#endif
|
||||
} else {
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if(fwin->thai_button)
|
||||
wCoreConfigure(fwin->thai_button, fwin->left_button->width, 0,
|
||||
fwin->thai_button->width,
|
||||
fwin->thai_button->width);
|
||||
#endif
|
||||
x = fwin->left_button->width;
|
||||
w -= fwin->left_button->width;
|
||||
}
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->flags.hide_thai_button || !fwin->thai_button
|
||||
|| fwin->flags.tbutton_dont_fit) {
|
||||
} else {
|
||||
x += fwin->thai_button->width;
|
||||
w -= fwin->thai_button->width;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
else {
|
||||
int bsize = theight - 7;
|
||||
if (fwin->flags.hide_left_button || !fwin->left_button
|
||||
|| fwin->flags.lbutton_dont_fit) {
|
||||
if(fwin->thai_button)
|
||||
wCoreConfigure(fwin->thai_button, 3, (theight-bsize)/2,
|
||||
fwin->thai_button->width,
|
||||
fwin->thai_button->width);
|
||||
}
|
||||
else {
|
||||
if(fwin->thai_button)
|
||||
wCoreConfigure(fwin->thai_button,
|
||||
6 + fwin->left_button->width, (theight-bsize)/2,
|
||||
fwin->thai_button->width,
|
||||
fwin->thai_button->width);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (wPreferences.new_style) {
|
||||
if (!fwin->flags.hide_right_button && fwin->right_button
|
||||
@@ -424,13 +536,24 @@ wFrameWindowHideButton(WFrameWindow *fwin, int flags)
|
||||
XUnmapWindow(dpy, fwin->left_button->window);
|
||||
fwin->flags.hide_left_button = 1;
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if ((flags & WFF_THAI_BUTTON) && fwin->thai_button) {
|
||||
XUnmapWindow(dpy, fwin->thai_button->window);
|
||||
fwin->flags.hide_thai_button = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (fwin->titlebar) {
|
||||
if (wPreferences.new_style) {
|
||||
updateTitlebar(fwin);
|
||||
} else {
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
updateTitlebar(fwin);
|
||||
#else
|
||||
XClearWindow(dpy, fwin->titlebar->window);
|
||||
wFrameWindowPaint(fwin);
|
||||
#endif
|
||||
}
|
||||
checkTitleSize(fwin);
|
||||
}
|
||||
@@ -448,6 +571,17 @@ wFrameWindowShowButton(WFrameWindow *fwin, int flags)
|
||||
|
||||
fwin->flags.hide_right_button = 0;
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if ((flags & WFF_THAI_BUTTON) && fwin->thai_button
|
||||
&& fwin->flags.hide_thai_button) {
|
||||
|
||||
if (!fwin->flags.tbutton_dont_fit)
|
||||
XMapWindow(dpy, fwin->thai_button->window);
|
||||
|
||||
fwin->flags.hide_thai_button = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
if ((flags & WFF_LEFT_BUTTON) && fwin->left_button
|
||||
&& fwin->flags.hide_left_button) {
|
||||
@@ -472,17 +606,29 @@ wFrameWindowShowButton(WFrameWindow *fwin, int flags)
|
||||
|
||||
|
||||
static void
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
renderTexture(WScreen *scr, WTexture *texture, int width, int height,
|
||||
int bwidth, int bheight, int left, int thai, int right,
|
||||
Pixmap *title, Pixmap *lbutton, Pixmap *tbutton, Pixmap *rbutton)
|
||||
#else
|
||||
renderTexture(WScreen *scr, WTexture *texture, int width, int height,
|
||||
int bwidth, int bheight, int left, int right,
|
||||
Pixmap *title, Pixmap *lbutton, Pixmap *rbutton)
|
||||
#endif
|
||||
{
|
||||
RImage *img;
|
||||
RImage *limg, *rimg, *mimg;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
RImage *timg;
|
||||
#endif
|
||||
int x, w;
|
||||
|
||||
*title = None;
|
||||
*lbutton = None;
|
||||
*rbutton = None;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
*tbutton = None;
|
||||
#endif
|
||||
|
||||
img = wTextureRenderImage(texture, width, height, WREL_FLAT);
|
||||
if (!img) {
|
||||
@@ -498,6 +644,13 @@ renderTexture(WScreen *scr, WTexture *texture, int width, int height,
|
||||
|
||||
x = 0;
|
||||
w = img->width;
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (thai) {
|
||||
timg = RGetSubImage(img, bwidth, 0, bwidth, bheight);
|
||||
} else
|
||||
timg = NULL;
|
||||
#endif
|
||||
|
||||
if (limg) {
|
||||
RBevelImage(limg, RBEV_RAISED2);
|
||||
@@ -508,6 +661,18 @@ renderTexture(WScreen *scr, WTexture *texture, int width, int height,
|
||||
w -= limg->width;
|
||||
RDestroyImage(limg);
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (timg) {
|
||||
RBevelImage(timg, RBEV_RAISED2);
|
||||
if (!RConvertImage(scr->rcontext, timg, tbutton)) {
|
||||
wwarning(_("error rendering image:%s"), RMessageForError(RErrorCode));
|
||||
}
|
||||
x += timg->width;
|
||||
w -= timg->width;
|
||||
RDestroyImage(timg);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (right) {
|
||||
rimg = RGetSubImage(img, width - bwidth, 0, bwidth, bheight);
|
||||
@@ -618,6 +783,12 @@ updateTexture(WFrameWindow *fwin)
|
||||
if (fwin->left_button && fwin->lbutton_back[i])
|
||||
XSetWindowBackgroundPixmap(dpy, fwin->left_button->window,
|
||||
fwin->lbutton_back[i]);
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button && fwin->tbutton_back[i])
|
||||
XSetWindowBackgroundPixmap(dpy, fwin->thai_button->window,
|
||||
fwin->tbutton_back[i]);
|
||||
#endif
|
||||
|
||||
if (fwin->right_button && fwin->rbutton_back[i])
|
||||
XSetWindowBackgroundPixmap(dpy, fwin->right_button->window,
|
||||
@@ -630,6 +801,11 @@ updateTexture(WFrameWindow *fwin)
|
||||
if (fwin->left_button)
|
||||
XSetWindowBackground(dpy, fwin->left_button->window,
|
||||
pixel);
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button)
|
||||
XSetWindowBackground(dpy, fwin->thai_button->window,
|
||||
pixel);
|
||||
#endif
|
||||
if (fwin->right_button)
|
||||
XSetWindowBackground(dpy, fwin->right_button->window,
|
||||
pixel);
|
||||
@@ -641,6 +817,12 @@ updateTexture(WFrameWindow *fwin)
|
||||
XClearWindow(dpy, fwin->left_button->window);
|
||||
handleButtonExpose(&fwin->left_button->descriptor, NULL);
|
||||
}
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button) {
|
||||
XClearWindow(dpy, fwin->thai_button->window);
|
||||
handleButtonExpose(&fwin->thai_button->descriptor, NULL);
|
||||
}
|
||||
#endif
|
||||
if (fwin->right_button) {
|
||||
XClearWindow(dpy, fwin->right_button->window);
|
||||
handleButtonExpose(&fwin->right_button->descriptor, NULL);
|
||||
@@ -654,35 +836,58 @@ static void
|
||||
remakeTexture(WFrameWindow *fwin, int state)
|
||||
{
|
||||
Pixmap pmap, lpmap, rpmap;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
Pixmap tpmap;
|
||||
#endif
|
||||
|
||||
if (fwin->title_texture[state] && fwin->titlebar) {
|
||||
FREE_PIXMAP(fwin->title_back[state]);
|
||||
if (wPreferences.new_style) {
|
||||
FREE_PIXMAP(fwin->lbutton_back[state]);
|
||||
FREE_PIXMAP(fwin->rbutton_back[state]);
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
FREE_PIXMAP(fwin->tbutton_back[state]);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (fwin->title_texture[state]->any.type!=WTEX_SOLID) {
|
||||
int left, right;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
int thai;
|
||||
#endif
|
||||
int width;
|
||||
|
||||
/* eventually surrounded by if new_style */
|
||||
left = fwin->left_button && !fwin->flags.hide_left_button
|
||||
&& !fwin->flags.lbutton_dont_fit;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
thai = fwin->thai_button && !fwin->flags.hide_thai_button
|
||||
&& !fwin->flags.tbutton_dont_fit;
|
||||
#endif
|
||||
right = fwin->right_button && !fwin->flags.hide_right_button
|
||||
&& !fwin->flags.rbutton_dont_fit;
|
||||
|
||||
width = fwin->core->width+1;
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
renderTexture(fwin->screen_ptr, fwin->title_texture[state],
|
||||
width, fwin->titlebar->height,
|
||||
fwin->titlebar->height, fwin->titlebar->height,
|
||||
left, thai, right, &pmap, &lpmap, &tpmap, &rpmap);
|
||||
#else
|
||||
renderTexture(fwin->screen_ptr, fwin->title_texture[state],
|
||||
width, fwin->titlebar->height,
|
||||
fwin->titlebar->height, fwin->titlebar->height,
|
||||
left, right, &pmap, &lpmap, &rpmap);
|
||||
#endif
|
||||
|
||||
fwin->title_back[state] = pmap;
|
||||
if (wPreferences.new_style) {
|
||||
fwin->lbutton_back[state] = lpmap;
|
||||
fwin->rbutton_back[state] = rpmap;
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
fwin->tbutton_back[state] = tpmap;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -806,6 +1011,14 @@ wFrameWindowPaint(WFrameWindow *fwin)
|
||||
lofs += fwin->left_button->width + 3;
|
||||
else
|
||||
allButtons = 0;
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button && !fwin->flags.hide_thai_button
|
||||
&& !fwin->flags.tbutton_dont_fit)
|
||||
lofs += fwin->thai_button->width;
|
||||
else
|
||||
allButtons = 0;
|
||||
#endif
|
||||
|
||||
if (fwin->right_button && !fwin->flags.hide_right_button
|
||||
&& !fwin->flags.rbutton_dont_fit)
|
||||
@@ -814,6 +1027,13 @@ wFrameWindowPaint(WFrameWindow *fwin)
|
||||
allButtons = 0;
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->languagemode) {
|
||||
fwin->tbutton_image = fwin->screen_ptr->b_pixmaps[WBUT_THAI];
|
||||
}
|
||||
else fwin->tbutton_image = fwin->screen_ptr->b_pixmaps[WBUT_ENGL];
|
||||
#endif
|
||||
|
||||
#ifdef XKB_TITLE_HINT
|
||||
if(fwin->flags.is_client_window_frame) {
|
||||
char * freebuff;
|
||||
@@ -880,6 +1100,10 @@ wFrameWindowPaint(WFrameWindow *fwin)
|
||||
|
||||
if (fwin->left_button)
|
||||
handleButtonExpose(&fwin->left_button->descriptor, NULL);
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button)
|
||||
handleButtonExpose(&fwin->thai_button->descriptor, NULL);
|
||||
#endif
|
||||
if (fwin->right_button)
|
||||
handleButtonExpose(&fwin->right_button->descriptor, NULL);
|
||||
}
|
||||
@@ -930,6 +1154,24 @@ reconfigure(WFrameWindow *fwin, int x, int y, int width, int height,
|
||||
fwin->flags.lbutton_dont_fit = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button) {
|
||||
if (width < fwin->top_width*k && !fwin->flags.tbutton_dont_fit) {
|
||||
|
||||
if (!fwin->flags.hide_thai_button) {
|
||||
XUnmapWindow(dpy, fwin->thai_button->window);
|
||||
}
|
||||
fwin->flags.tbutton_dont_fit = 1;
|
||||
} else if (width >= fwin->top_width*k && fwin->flags.tbutton_dont_fit) {
|
||||
|
||||
if (!fwin->flags.hide_thai_button) {
|
||||
XMapWindow(dpy, fwin->thai_button->window);
|
||||
}
|
||||
fwin->flags.tbutton_dont_fit = 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (fwin->right_button) {
|
||||
if (width < fwin->top_width*2 && !fwin->flags.rbutton_dont_fit) {
|
||||
@@ -1069,6 +1311,12 @@ checkTitleSize(WFrameWindow *fwin)
|
||||
if (fwin->left_button && !fwin->flags.hide_left_button
|
||||
&& !fwin->flags.lbutton_dont_fit)
|
||||
width -= fwin->left_button->width + 3;
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (fwin->thai_button && !fwin->flags.hide_thai_button
|
||||
&& !fwin->flags.tbutton_dont_fit)
|
||||
width -= fwin->thai_button->width + 3;
|
||||
#endif
|
||||
|
||||
if (fwin->right_button && !fwin->flags.hide_right_button
|
||||
&& !fwin->flags.rbutton_dont_fit)
|
||||
@@ -1182,6 +1430,17 @@ handleButtonExpose(WObjDescriptor *desc, XEvent *event)
|
||||
WFrameWindow *fwin = (WFrameWindow*)desc->parent;
|
||||
WCoreWindow *button = (WCoreWindow*)desc->self;
|
||||
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (button == fwin->thai_button) {
|
||||
|
||||
if (wPreferences.modelock){
|
||||
paintButton(button, fwin->title_texture[fwin->flags.state],
|
||||
fwin->title_pixel[fwin->flags.state],
|
||||
fwin->tbutton_image, False);
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
|
||||
if (button == fwin->left_button) {
|
||||
paintButton(button, fwin->title_texture[fwin->flags.state],
|
||||
fwin->title_pixel[fwin->flags.state],
|
||||
@@ -1252,6 +1511,12 @@ buttonMouseDown(WObjDescriptor *desc, XEvent *event)
|
||||
} else {
|
||||
image = fwin->rbutton_image;
|
||||
}
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
if (button == fwin->thai_button) {
|
||||
if (!wPreferences.modelock) return;
|
||||
image = fwin->tbutton_image;
|
||||
}
|
||||
#endif
|
||||
|
||||
pixel = fwin->title_pixel[fwin->flags.state];
|
||||
texture = fwin->title_texture[fwin->flags.state];
|
||||
@@ -1293,6 +1558,13 @@ buttonMouseDown(WObjDescriptor *desc, XEvent *event)
|
||||
if (fwin->on_click_right)
|
||||
(*fwin->on_click_right)(button, fwin->child, &ev);
|
||||
}
|
||||
#ifdef XKB_BUTTON_HINT
|
||||
else if (button == fwin->thai_button) {
|
||||
if (fwin->on_click_thai)
|
||||
(*fwin->on_click_thai)(button, fwin->child, &ev);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user