mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-21 13:28:05 +01:00
fixed crash bug with alt-tab + run-dialog (or internal windows in general)
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
Changes since version 0.91.0:
|
||||||
|
.............................
|
||||||
|
- fixed crash with info panel and alt-tabbing
|
||||||
|
|
||||||
Changes since version 0.90.0:
|
Changes since version 0.90.0:
|
||||||
.............................
|
.............................
|
||||||
|
|
||||||
|
|||||||
@@ -360,32 +360,39 @@ drawTitle(WSwitchPanel *panel, int index, char *title)
|
|||||||
int width= WMWidgetWidth(panel->win);
|
int width= WMWidgetWidth(panel->win);
|
||||||
int x;
|
int x;
|
||||||
|
|
||||||
ntitle= ShrinkString(panel->font, title, width-2*BORDER_SPACE);
|
if (title)
|
||||||
|
ntitle= ShrinkString(panel->font, title, width-2*BORDER_SPACE);
|
||||||
|
else
|
||||||
|
ntitle= NULL;
|
||||||
|
|
||||||
if (panel->bg) {
|
if (panel->bg) {
|
||||||
if (strcmp(ntitle, title)!=0)
|
if (ntitle) {
|
||||||
x= BORDER_SPACE;
|
if (strcmp(ntitle, title)!=0)
|
||||||
else
|
|
||||||
{
|
|
||||||
int w= WMWidthOfString(panel->font, ntitle, strlen(ntitle));
|
|
||||||
|
|
||||||
x= BORDER_SPACE+(index-panel->firstVisible)*ICON_TILE_SIZE + ICON_TILE_SIZE/2 - w/2;
|
|
||||||
if (x < BORDER_SPACE)
|
|
||||||
x= BORDER_SPACE;
|
x= BORDER_SPACE;
|
||||||
else if (x + w > width-BORDER_SPACE)
|
else
|
||||||
x= width-BORDER_SPACE-w;
|
{
|
||||||
}
|
int w= WMWidthOfString(panel->font, ntitle, strlen(ntitle));
|
||||||
|
|
||||||
|
x= BORDER_SPACE+(index-panel->firstVisible)*ICON_TILE_SIZE + ICON_TILE_SIZE/2 - w/2;
|
||||||
|
if (x < BORDER_SPACE)
|
||||||
|
x= BORDER_SPACE;
|
||||||
|
else if (x + w > width-BORDER_SPACE)
|
||||||
|
x= width-BORDER_SPACE-w;
|
||||||
|
}
|
||||||
|
}
|
||||||
XClearWindow(dpy, WMWidgetXID(panel->win));
|
XClearWindow(dpy, WMWidgetXID(panel->win));
|
||||||
WMDrawString(panel->scr->wmscreen,
|
if (ntitle)
|
||||||
WMWidgetXID(panel->win),
|
WMDrawString(panel->scr->wmscreen,
|
||||||
panel->white, panel->font,
|
WMWidgetXID(panel->win),
|
||||||
x, WMWidgetHeight(panel->win) - BORDER_SPACE - LABEL_HEIGHT + WMFontHeight(panel->font)/2,
|
panel->white, panel->font,
|
||||||
ntitle, strlen(ntitle));
|
x, WMWidgetHeight(panel->win) - BORDER_SPACE - LABEL_HEIGHT + WMFontHeight(panel->font)/2,
|
||||||
|
ntitle, strlen(ntitle));
|
||||||
} else {
|
} else {
|
||||||
WMSetLabelText(panel->label, ntitle);
|
if (ntitle)
|
||||||
|
WMSetLabelText(panel->label, ntitle);
|
||||||
}
|
}
|
||||||
free(ntitle);
|
if (ntitle)
|
||||||
|
free(ntitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user