From: Rodolfo García Peñas (kix) <[email protected]>
The new workspace struct includes the global information
for the workspaces. All information related with the workspaces
should be included here.
The first variable moved is workspace_name_font, included in this
patch. This variable was included in the screen info, but the
screen and the font used in the workspace name don't have any
relationship.
---
src/WindowMaker.h | 5 +++++
src/defaults.c | 6 +++---
src/screen.h | 2 --
src/workspace.c | 8 ++++----
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/src/WindowMaker.h b/src/WindowMaker.h
index 36d52f5..b38419e 100644
--- a/src/WindowMaker.h
+++ b/src/WindowMaker.h
@@ -481,6 +481,11 @@ extern struct wmaker_global_variables {
} timestamp;
+ /* Workspace related */
+ struct {
+ WMFont *font_for_name; /* used during workspace switch */
+ } workspace;
+
/* definition for X Atoms */
struct {
diff --git a/src/defaults.c b/src/defaults.c
index 6091b64..973ed07 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -2587,10 +2587,10 @@ static int setLargeDisplayFont(WScreen *scr,
WDefaultEntry *entry, void *tdata,
{
WMFont *font = tdata;
- if (scr->workspace_name_font)
- WMReleaseFont(scr->workspace_name_font);
+ if (w_global.workspace.font_for_name)
+ WMReleaseFont(w_global.workspace.font_for_name);
- scr->workspace_name_font = font;
+ w_global.workspace.font_for_name = font;
return 0;
}
diff --git a/src/screen.h b/src/screen.h
index 8dbddee..02694ec 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -163,8 +163,6 @@ typedef struct _WScreen {
needs to be a core font so we can
use it with a XORing GC */
- WMFont *workspace_name_font;
-
WMColor *select_color;
WMColor *select_text_color;
/* foreground colors */
diff --git a/src/workspace.c b/src/workspace.c
index 5e78c47..aa5c80a 100644
--- a/src/workspace.c
+++ b/src/workspace.c
@@ -278,8 +278,8 @@ static void showWorkspaceName(WScreen * scr, int workspace)
data = wmalloc(sizeof(WorkspaceNameData));
data->back = NULL;
- w = WMWidthOfString(scr->workspace_name_font, name, len);
- h = WMFontHeight(scr->workspace_name_font);
+ w = WMWidthOfString(w_global.workspace.font_for_name, name, len);
+ h = WMFontHeight(w_global.workspace.font_for_name);
#ifdef XINERAMA
head = wGetHeadForPointerLocation(scr);
@@ -351,7 +351,7 @@ static void showWorkspaceName(WScreen * scr, int workspace)
for (x = 0; x <= 4; x++)
for (y = 0; y <= 4; y++)
- WMDrawString(scr->wmscreen, text, scr->white,
scr->workspace_name_font, x, y, name, len);
+ WMDrawString(scr->wmscreen, text, scr->white,
w_global.workspace.font_for_name, x, y, name, len);
XSetForeground(dpy, scr->mono_gc, 1);
XSetBackground(dpy, scr->mono_gc, 0);
@@ -363,7 +363,7 @@ static void showWorkspaceName(WScreen * scr, int workspace)
XFillRectangle(dpy, text, WMColorGC(scr->black), 0, 0, w + 4, h + 4);
- WMDrawString(scr->wmscreen, text, scr->white, scr->workspace_name_font,
2, 2, name, len);
+ WMDrawString(scr->wmscreen, text, scr->white,
w_global.workspace.font_for_name, 2, 2, name, len);
#ifdef SHAPE
XShapeCombineMask(dpy, scr->workspace_name, ShapeBounding, 0, 0, mask,
ShapeSet);
--
1.8.4.rc3
--
To unsubscribe, send mail to [email protected].