1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-20 04:48:06 +01:00

GNOME mouseclickproxy thing fix

added WorkspaceNameDisplayPosition
balloon updates
bug fixes
This commit is contained in:
kojima
1999-04-25 21:43:50 +00:00
parent fe2e0156e0
commit d3609d3449
28 changed files with 3473 additions and 1573 deletions

View File

@@ -6,13 +6,16 @@ Changes since version 0.53.0:
- made deiconification not automatically focus window in sloppy focus
- fixed crash with DisableMiniwindows and icon pixmap changes
- fixed crash when changing icon of window without WM_CLASS
- added IAmAnnoyingAndDontWantWorkspaceNameDisplay
- added hysteresys for offscreen menu scrollback
- fixed bug with IgnoreFocusClick
- fixed crash with windows with width == 1 (Alban Hertroys
<dalroi@wit401310.student.utwente.nl>)
- added SHEXEC command
- fixed resizebarback for SHADOW_RESIZEBAR ( jim knoble jmknoble@pobox.com)
- added balloon help everywhere
- fixed bug with FullMaximize attribute
- GNOME: button events not bound in wmaker are proxyized (to gmc)
(Paul Warren <pdw@ferret.lmh.ox.ac.uk>)
Changes since version 0.52.0:

7
NEWS
View File

@@ -18,6 +18,13 @@ will load the theme, but keep the titlebar background related options as
before.
New Options
-----------
WorkspaceNameDisplayPosition =
none/center/top/bottom/topleft/topright/bottomleft/bottomright
root menu
---------

View File

@@ -554,7 +554,7 @@ paintButton(Button *bPtr)
gc = NULL;
caption = bPtr->caption;
if (bPtr->flags.enabled)
if (bPtr->flags.enabled || !bPtr->dimage)
image = bPtr->image;
else
image = bPtr->dimage;

View File

@@ -297,9 +297,12 @@ static char *CHECK_MARK[] = {
"#%======="};
#define STIPPLE_WIDTH 2
#define STIPPLE_HEIGHT 2
static unsigned char STIPPLE_BITS[] = {0x01, 0x02};
#define STIPPLE_WIDTH 8
#define STIPPLE_HEIGHT 8
static unsigned char STIPPLE_BITS[] = {
0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa
};
extern void W_ReadConfigurations(void);

View File

@@ -349,6 +349,9 @@ destroyView(W_View *view)
return;
view->flags.alreadyDead = 1;
/* delete the balloon text for the view, if there's any */
WMSetBalloonTextForView(NULL, view);
if (view->nextFocusChain)
view->nextFocusChain->prevFocusChain = view->prevFocusChain;
if (view->prevFocusChain)

View File

@@ -92,6 +92,7 @@ showData(_Panel *panel)
WMSetButtonSelected(panel->ballB[0], GetBoolForKey("WindowTitleBalloons"));
WMSetButtonSelected(panel->ballB[1], GetBoolForKey("MiniwindowTitleBalloons"));
WMSetButtonSelected(panel->ballB[2], GetBoolForKey("AppIconBalloons"));
WMSetButtonSelected(panel->ballB[3], GetBoolForKey("HelpBalloons"));
}
@@ -136,6 +137,7 @@ storeData(_Panel *panel)
SetBoolForKey(WMGetButtonSelected(panel->ballB[0]), "WindowTitleBalloons");
SetBoolForKey(WMGetButtonSelected(panel->ballB[1]), "MiniwindowTitleBalloons");
SetBoolForKey(WMGetButtonSelected(panel->ballB[2]), "AppIconBalloons");
SetBoolForKey(WMGetButtonSelected(panel->ballB[3]), "HelpBalloons");
}
@@ -187,7 +189,7 @@ createPanel(Panel *p)
WMMoveWidget(panel->ballF, 270, 10);
WMSetFrameTitle(panel->ballF, _("Show balloon text for..."));
for (i=0; i<3; i++) {
for (i=0; i<4; i++) {
panel->ballB[i] = WMCreateSwitchButton(panel->ballF);
WMResizeWidget(panel->ballB[i], 205, 20);
WMMoveWidget(panel->ballB[i], 15, 25+i*30);
@@ -195,7 +197,7 @@ createPanel(Panel *p)
WMSetButtonText(panel->ballB[0], _("incomplete window titles"));
WMSetButtonText(panel->ballB[1], _("miniwindow titles"));
WMSetButtonText(panel->ballB[2], _("application/dock icons"));
/* WMSetButtonText(panel->ballB[3], "help");*/
WMSetButtonText(panel->ballB[3], _("internal help"));
WMMapSubwidgets(panel->ballF);

View File

@@ -76,6 +76,8 @@ typedef struct _WPrefs {
WMButton *undoBtn;
WMButton *undosBtn;
WMButton *balloonBtn;
WMFrame *banner;
WMLabel *nameL;
WMLabel *versionL;
@@ -226,6 +228,19 @@ prepareForClose()
}
void
toggleBalloons(WMWidget *w, void *data)
{
WMUserDefaults *udb = WMGetStandardUserDefaults();
Bool flag;
flag = WMGetButtonSelected(WPrefs.balloonBtn);
WMSetBalloonEnabled(WMWidgetScreen(WPrefs.win), flag);
WMSetUDBoolForKey(udb, flag, "BalloonHelp");
}
static void
createMainWindow(WMScreen *scr)
@@ -281,6 +296,20 @@ createMainWindow(WMScreen *scr)
WMSetButtonText(WPrefs.closeBtn, _("Close"));
WMSetButtonAction(WPrefs.closeBtn, quit, NULL);
WPrefs.balloonBtn = WMCreateSwitchButton(WPrefs.win);
WMResizeWidget(WPrefs.balloonBtn, 200, 28);
WMMoveWidget(WPrefs.balloonBtn, 15, 350);
WMSetButtonText(WPrefs.balloonBtn, _("Balloon Help"));
WMSetButtonAction(WPrefs.balloonBtn, toggleBalloons, NULL);
{
WMUserDefaults *udb = WMGetStandardUserDefaults();
Bool flag = WMGetUDBoolForKey(udb, "BalloonHelp");
WMSetButtonSelected(WPrefs.balloonBtn, flag);
WMSetBalloonEnabled(scr, flag);
}
/* banner */
WPrefs.banner = WMCreateFrame(WPrefs.win);
WMResizeWidget(WPrefs.banner, FRAME_WIDTH, FRAME_HEIGHT);

View File

@@ -5,7 +5,7 @@ nlsdir = $(NLSDIR)
CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po es.po\
zh_CN.po
zh_CN.po fi.po
POTFILES = \
$(top_builddir)/WPrefs.app/main.c \

View File

@@ -94,7 +94,7 @@ nlsdir = $(NLSDIR)
CLEANFILES = $(CATALOGS)
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po es.po zh_CN.po
EXTRA_DIST = pt.po hr.po fr.po ko.po cs.po ja.po zh_TW.Big5.po es.po zh_CN.po fi.po
POTFILES = $(top_builddir)/WPrefs.app/main.c $(top_builddir)/WPrefs.app/WPrefs.c $(top_builddir)/WPrefs.app/Appearance.c $(top_builddir)/WPrefs.app/Configurations.c $(top_builddir)/WPrefs.app/Expert.c $(top_builddir)/WPrefs.app/Focus.c $(top_builddir)/WPrefs.app/Icons.c $(top_builddir)/WPrefs.app/KeyboardSettings.c $(top_builddir)/WPrefs.app/KeyboardShortcuts.c $(top_builddir)/WPrefs.app/Menu.c $(top_builddir)/WPrefs.app/MenuPreferences.c $(top_builddir)/WPrefs.app/MouseSettings.c $(top_builddir)/WPrefs.app/NoMenuAlert.c $(top_builddir)/WPrefs.app/Paths.c $(top_builddir)/WPrefs.app/Preferences.c $(top_builddir)/WPrefs.app/Text.c $(top_builddir)/WPrefs.app/TexturePanel.c $(top_builddir)/WPrefs.app/Themes.c $(top_builddir)/WPrefs.app/WindowHandling.c $(top_builddir)/WPrefs.app/Workspace.c $(top_builddir)/WPrefs.app/double.c $(top_builddir)/WPrefs.app/editmenu.c $(top_builddir)/WPrefs.app/MenuGuru.c $(top_builddir)/WPrefs.app/xmodifier.c

View File

@@ -13,3 +13,4 @@ ja.po Japanese Kazuhide Takahashi <kazu@dgra.ne.jp>
zh_TW.Big5.po Chinese Li Wei Jih <lwj83@cs.ccu.edu.tw>
zh_CN.po Chinese Wang Jian <wangjian2@asiainfo.com>
es.po Spanish Alvaro Herrera <alvherre@webhost.cl>
fi.po Finnish Tomi Kajala <tomi@iki.fi>

File diff suppressed because it is too large Load Diff

1485
WPrefs.app/po/fi.po Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -63,3 +63,4 @@ menu.zh_CN Chinese Wang Jian <wangjian2@asiainfo.com>
plmenu.dk Danish Birger Langkjer <birger.langkjer@image.dk>
plmenu.zh_CN Chinese Wang Jian <wangjian2@asiainfo.com>
plmenu.hr Croatian Toni Bilic <tbilic@efos.hr>

View File

@@ -2,7 +2,7 @@
TitleJustify = center;
HighlightColor = white;
HighlightTextColor = black;
ClipTitleColor = white;
ClipTitleColor = black;
CClipTitleColor = gray20;
FTitleColor = white;
PTitleColor = white;

View File

@@ -9,9 +9,11 @@
("Lista procesa", EXEC, "xterm -e top"),
("Pretra\276iva\350 manuala", EXEC, xman)
),
(XTerm, EXEC, "xterm -sb"),
(Rxvt, EXEC, "rxvt -bg black -fg white -fn fixed"),
("Radni Prostori", WORKSPACE_MENU),
(Pokreni..., EXEC, "%a(Pokreni,Upi\271ite naredbu za pokrenuti:)"),
(NXTerm, EXEC, "nxterm -sb"),
(Rxvt, EXEC, rxvt),
(WMTerm, EXEC, "rxvt -wm"),
("Radni prostori", WORKSPACE_MENU),
(
Programi,
(
@@ -21,8 +23,8 @@
(XPaint, EXEC, xpaint),
(XFig, EXEC, xfig)
),
("X File Manager", EXEC, xfm),
("OffiX Files", EXEC, files),
(FSViewer, EXEC, fsviewer),
("Offix files", EXEC, files),
(LyX, EXEC, lyx),
(Netscape, EXEC, netscape),
(Ghostview, EXEC, "ghostview %a(Enter file to view)"),
@@ -52,7 +54,7 @@
"Pomo\346ni programi",
(Kalkulator, EXEC, xcalc),
(
"Postavke prozora",
"Info o prozoru",
EXEC,
"xprop | xmessage -center -title 'xprop' -file -"
),
@@ -61,7 +63,7 @@
("Pove\346alo", EXEC, xmag),
(Colormap, EXEC, xcmap),
(XKill, EXEC, xkill),
(ASClock, EXEC, "asclock -shape"),
(WMClock, EXEC, "wmclock -24"),
(Clipboard, EXEC, xclipboard)
),
(
@@ -79,7 +81,7 @@
("Osvje\276i", REFRESH),
("Zaklju\350aj", EXEC, "xlock -allowroot -usefirst"),
("Snimi session", SAVE_SESSION),
("O\350isti snimljeni Session", CLEAR_SESSION)
("O\350isti snimljeni session", CLEAR_SESSION)
),
(
Izgled,
@@ -118,17 +120,17 @@
"wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"
),
(
"Duboko Plava",
"Duboko Blue",
EXEC,
"wdwrite WindowMaker WorkspaceBack '(solid, \"#180090\")'"
),
(
Purpurna,
"Ljubi\350asta",
EXEC,
"wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"
),
(
Pustinjska,
Krem,
EXEC,
"wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"
),
@@ -138,7 +140,7 @@
"wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"
),
(
Vinska,
"Vinsko crvena",
EXEC,
"wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'"
)
@@ -166,12 +168,12 @@
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"
),
(
"Purpurne nijanse",
"Ljubi\350aste nijanse",
EXEC,
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"
),
(
"Pustinjske nijanse",
"Krem nijanse",
EXEC,
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"
),
@@ -181,7 +183,7 @@
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"
),
(
"Vinske nijanse",
"Vinsko crvene nijanse",
EXEC,
"wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'"
)
@@ -206,8 +208,10 @@
(
Izlaz,
("Ponovo startaj", RESTART),
("Startaj AfterStep", RESTART, afterstep),
("Pokreni BlackBox", RESTART, blackbox),
("Pokreni kwm", RESTART, kwm),
("Pokreni IceWM", RESTART, icewm),
(Izlaz..., EXIT),
("Izlaz iz sessiona...", SHORTCUT, "Mod1+e", SHUTDOWN, QUICK)
),
("Ubij session...", SHUTDOWN)
)
)

View File

@@ -216,7 +216,7 @@ dnl ==================
dnl List of supported locales
dnl -------------------------
supported_locales="cs de es fr gl it ja ko nl no pt ru se tr fi hr el pl ro da zh_TW.Big5 zh_CN sk"
supported_wprefs_locales="pt hr fr ko ja cs zh_TW.Big5 es zh_CN"
supported_wprefs_locales="pt hr fr ko ja cs zh_TW.Big5 es zh_CN fi"
for lang in $LINGUAS; do
ok=0

790
po/cs.po

File diff suppressed because it is too large Load Diff

750
po/fi.po

File diff suppressed because it is too large Load Diff

View File

@@ -200,6 +200,17 @@ typedef enum {
#define MS_FLAT 2
/* workspace display position */
#define WD_NONE 0
#define WD_CENTER 1
#define WD_TOP 2
#define WD_BOTTOM 3
#define WD_TOPLEFT 4
#define WD_TOPRIGHT 5
#define WD_BOTTOMLEFT 6
#define WD_BOTTOMRIGHT 7
/* program states */
#define WSTATE_NORMAL 0
#define WSTATE_NEED_EXIT 1
@@ -339,13 +350,15 @@ typedef struct WPreferences {
int menu_style; /* menu decoration style */
int workspace_name_display_position;
unsigned int modifier_mask; /* mask to use as kbd modifier */
char ws_advance; /* Create new workspace and advance */
char ws_cycle; /* Cycle existing workspaces */
unsigned int modifier_mask; /* mask to use as kbd modifier */
char save_session_on_exit; /* automatically save session on exit */
char sticky_icons; /* If miniwindows will be onmipresent */
@@ -369,8 +382,7 @@ typedef struct WPreferences {
char window_balloon;
char miniwin_balloon;
char appicon_balloon;
char no_workspace_name_display;
char help_balloon;
#ifdef WEENDOZE_CYCLE
char windoze_cycling; /* Windoze 95 style Alt+Tabbing */

View File

@@ -914,6 +914,10 @@ appIconMouseDown(WObjDescriptor *desc, XEvent *event)
XFreePixmap(dpy, ghost);
XSetWindowBackground(dpy, scr->dock_shadow, scr->white_pixel);
}
if (wPreferences.auto_arrange_icons)
wArrangeIcons(scr, True);
done = 1;
break;
}

View File

@@ -296,6 +296,18 @@ static WOptionEnumeration seMenuStyles[] = {
};
static WOptionEnumeration seDisplayPositions[] = {
{"none", WD_NONE, 0},
{"center", WD_CENTER, 0},
{"top", WD_TOP, 0},
{"bottom", WD_BOTTOM, 0},
{"topleft", WD_TOPLEFT, 0},
{"topright", WD_TOPRIGHT, 0},
{"bottomleft", WD_BOTTOMLEFT, 0},
{"bottomright", WD_BOTTOMRIGHT, 0}
};
/*
* ALL entries in the tables bellow, NEED to have a default value
* defined, and this value needs to be correct.
@@ -387,8 +399,8 @@ WDefaultEntry optionList[] = {
{"CycleWorkspaces", "NO", NULL,
&wPreferences.ws_cycle, getBool, NULL
},
{"IAmAnnoyingAndDontWantWorkspaceNameDisplay", "NO",NULL,
&wPreferences.no_workspace_name_display, getBool, NULL
{"WorkspaceNameDisplayPosition", "center", seDisplayPositions,
&wPreferences.workspace_name_display_position, getEnum, NULL
},
{"StickyIcons", "NO", NULL,
&wPreferences.sticky_icons, getBool, setStickyIcons
@@ -417,7 +429,7 @@ WDefaultEntry optionList[] = {
{"AlignSubmenus", "NO", NULL,
&wPreferences.align_menus, getBool, NULL
},
{"OpenTransientOnOwnerWorkspace", "NO", NULL,
{"OpenTransientOnOwnerWorkspace", "NO", NULL,
&wPreferences.open_transients_with_parent, getBool, NULL
},
{"WindowPlacement", "auto", sePlacements,
@@ -471,6 +483,9 @@ WDefaultEntry optionList[] = {
{"AppIconBalloons", "NO", NULL,
&wPreferences.appicon_balloon,getBool, NULL
},
{"HelpBalloons", "NO", NULL,
&wPreferences.help_balloon, getBool, NULL
},
{"EdgeResistance", "30", NULL,
&wPreferences.edge_resistance,getInt, NULL
},

View File

@@ -617,11 +617,6 @@ handleButtonPress(XEvent *event)
#ifndef LITE
if (event->xbutton.window==scr->root_win) {
#ifdef GNOME_STUFF
if (wGNOMEProxyizeButtonEvent(scr, event))
return;
#endif
if (event->xbutton.button==wPreferences.menu_button) {
OpenRootMenu(scr, event->xbutton.x_root,
event->xbutton.y_root, False);
@@ -656,6 +651,10 @@ handleButtonPress(XEvent *event)
}
#endif /* MOUSE_WS_SWITCH */
#ifdef GNOME_STUFF
else if (wGNOMEProxyizeButtonEvent(scr, event))
return;
#endif
}
#endif /* !LITE */

View File

@@ -555,15 +555,6 @@ wGNOMEProcessClientMessage(XClientMessageEvent *event)
Bool
wGNOMEProxyizeButtonEvent(WScreen *scr, XEvent *event)
{
#ifndef MOUSE_WS_SWITCH
if (event->xbutton.button <= Button3
&& (event->xbutton.state & ValidModMask) == 0)
return False;
#else
if ((event->xbutton.state & ValidModMask) == 0)
return False;
#endif
if (event->type == ButtonPress)
XUngrabPointer(dpy, CurrentTime);
XSendEvent(dpy, scr->no_focus_win, False, SubstructureNotifyMask, event);

View File

@@ -3,7 +3,7 @@
*
* WindowMaker window manager
*
* Copyright (c) 1997 Alfredo K. Kojima
* Copyright (c) 1997-199 Alfredo K. Kojima
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -300,7 +300,7 @@
#define DEF_CLIP_TITLE_FONT "\"-*-*-medium-r-normal--10-*\""
#define DEF_INFO_TEXT_FONT "\"-*-*-medium-r-normal--14-*\""
#define DEF_WORKSPACE_NAME_FONT "-*-*-medium-r-normal--24-*"
#define DEF_WORKSPACE_NAME_FONT "\"-*-*-medium-r-normal--24-*\""
#else /* !I18N_MB */
#define DEF_TITLE_FONT "\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*\""
#define DEF_MENU_TITLE_FONT "\"-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-*-*\""
@@ -309,7 +309,7 @@
#define DEF_CLIP_TITLE_FONT "\"-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*\""
#define DEF_INFO_TEXT_FONT "\"-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*\""
#define DEF_WORKSPACE_NAME_FONT "-*-lucida-bold-r-*-*-24-*-*-*-*-*-*-*"
#define DEF_WORKSPACE_NAME_FONT "\"-*-lucida-bold-r-*-*-24-*-*-*-*-*-*-*\""
#endif /* !I18N_MB */
#define HELVETICA10_FONT "-*-helvetica-medium-r-normal-*-10-*-*-*-*-*-*-*"
@@ -425,7 +425,7 @@
/* workspace name on switch display */
#define WORKSPACE_NAME_FADE_DELAY 30
#define WORKSPACE_NAME_DELAY 500
#define WORKSPACE_NAME_DELAY 400
/* window birth animation steps (DO NOT MAKE IT RUN-TIME) */
#define WINDOW_BIRTH_STEPS 20

View File

@@ -302,7 +302,7 @@ wDefaultFillAttributes(WScreen *scr, char *instance, char *class,
APPLY_VAL(value, emulate_appicon, AEmulateAppIcon);
value = get_value(dw, dc, dn, da, AFullMaximize, No, useGlobalDefault);
APPLY_VAL(value, emulate_appicon, AFullMaximize);
APPLY_VAL(value, full_maximize, AFullMaximize);
/* clean up */
PLSetStringCmpHook(StringCompareHook);

View File

@@ -1117,47 +1117,65 @@ createInspectorForWindow(WWindow *wwin)
for (i=0; i < 10; i++) {
char *caption = NULL;
int flag = 0;
char *descr = NULL;
switch (i) {
case 0:
caption = _("Disable Titlebar");
flag = WFLAGP(wwin, no_titlebar);
descr = _("Remove the titlebar of this window.\n"
"To access the window commands menu of a window\n"
"without it's titlebar, press Control+Esc (or the\n"
"equivalent shortcut, if you changed the default\n"
"settings).");
break;
case 1:
caption = _("Disable Resizebar");
flag = WFLAGP(wwin, no_resizebar);
descr = _("Remove the resizebar of this window.");
break;
case 2:
caption = _("Disable Close Button");
flag = WFLAGP(wwin, no_close_button);
descr = _("Remove the `close window' button of this window.");
break;
case 3:
caption = _("Disable Miniaturize Button");
flag = WFLAGP(wwin, no_miniaturize_button);
descr = _("Remove the `miniaturize window' button of the window.");
break;
case 4:
caption = _("Keep on Top / Floating");
flag = WFLAGP(wwin, floating);
descr = _("Keep the window over other windows, not allowing\n"
"them to covert it.");
break;
case 5:
caption = _("Keep at Bottom / Sunken");
flag = WFLAGP(wwin, sunken);
descr = _("Keep the window under all other windows.");
break;
case 6:
caption = _("Omnipresent");
flag = WFLAGP(wwin, omnipresent);
descr = _("Make window occupy all workspaces.");
break;
case 7:
caption = _("Start Miniaturized");
flag = WFLAGP(wwin, start_miniaturized);
descr = _("Make the window be automatically miniaturized when it's\n"
"first shown.");
break;
case 8:
caption = _("Start Maximized");
flag = WFLAGP(wwin, start_maximized!=0);
descr = _("Make the window be automatically maximized when it's\n"
"first shown.");
break;
case 9:
caption = _("Skip Window List");
flag = WFLAGP(wwin, skip_window_list);
descr = _("Do not list the window in the window list menu.");
break;
}
panel->attrChk[i] = WMCreateSwitchButton(panel->attrFrm);
@@ -1165,6 +1183,8 @@ createInspectorForWindow(WWindow *wwin)
WMResizeWidget(panel->attrChk[i], frame_width-15, 20);
WMSetButtonSelected(panel->attrChk[i], flag);
WMSetButtonText(panel->attrChk[i], caption);
WMSetBalloonTextForView(descr, WMWidgetView(panel->attrChk[i]));
}
@@ -1177,39 +1197,63 @@ createInspectorForWindow(WWindow *wwin)
for (i=0; i < 8; i++) {
char *caption = NULL;
int flag = 0;
char *descr = NULL;
switch (i) {
case 0:
caption = _("Ignore HideOthers");
flag = WFLAGP(wwin, no_hide_others);
descr = _("Do not hide the window when issuing the\n"
"`HideOthers' command.");
break;
case 1:
caption = _("Don't Bind Keyboard Shortcuts");
flag = WFLAGP(wwin, no_bind_keys);
descr = _("Do not bind keyboard shortcuts from Window Maker\n"
"when this window is focused. This will allow the\n"
"window to receive all key combinations regardless\n"
"of your shortcut configuration.");
break;
case 2:
caption = _("Don't Bind Mouse Clicks");
flag = WFLAGP(wwin, no_bind_mouse);
descr = _("Do not bind mouse actions, such as `Alt'+drag\n"
"in the window (when alt is the modifier you have"
"configured).");
break;
case 3:
caption = _("Keep Inside Screen");
flag = WFLAGP(wwin, dont_move_off);
descr = _("Do not allow the window to move itself completely\n"
"outside the screen. For bug compatibility.\n");
break;
case 4:
caption = _("Don't Let It Take Focus");
flag = WFLAGP(wwin, no_focusable);
descr = _("Do not let the window take keyboard focus when you\n"
"click on it.");
break;
case 5:
caption = _("Don't Save Session");
flag = WFLAGP(wwin, dont_save_session);
descr = _("Do not save the associated application in the\n"
"session's state, so that it won't be restarted\n"
"together with other applications when Window Maker\n"
"starts.");
break;
case 6:
caption = _("Emulate Application Icon");
flag = WFLAGP(wwin, emulate_appicon);
descr = _("Make this window act as an application that provides\n"
"enough information to Window Maker for a dockable\n"
"application icon to be created.");
break;
case 7:
caption = _("Full Screen Maximization");
flag = WFLAGP(wwin, full_maximize);
descr = _("Make the window use the whole screen space when it's\n"
"maximized. The titlebar and resizebar will be moved\n"
"to outside the screen.");
break;
}
panel->moreChk[i] = WMCreateSwitchButton(panel->moreFrm);
@@ -1217,14 +1261,9 @@ createInspectorForWindow(WWindow *wwin)
WMResizeWidget(panel->moreChk[i], frame_width-15, 20);
WMSetButtonSelected(panel->moreChk[i], flag);
WMSetButtonText(panel->moreChk[i], caption);
}
panel->moreLbl = WMCreateLabel(panel->moreFrm);
WMResizeWidget(panel->moreLbl, frame_width - (2 * 5), 60);
WMMoveWidget(panel->moreLbl, 5, 180);
WMSetLabelText(panel->moreLbl,
_("Enable the \"Don't bind...\" options to allow the "
"application to receive all mouse or keyboard events."));
WMSetBalloonTextForView(descr, WMWidgetView(panel->moreChk[i]));
}
/* miniwindow/workspace */
panel->iconFrm = WMCreateFrame(panel->win);
@@ -1285,6 +1324,9 @@ createInspectorForWindow(WWindow *wwin)
WMResizeWidget(panel->wsFrm, PWIDTH - (2 * 15), 70);
WMSetFrameTitle(panel->wsFrm, _("Initial Workspace"));
WMSetBalloonTextForView(_("The workspace to place the window when it's"
"first shown."), WMWidgetView(panel->wsFrm));
panel->wsP = WMCreatePopUpButton(panel->wsFrm);
WMMoveWidget(panel->wsP, 20, 30);
WMResizeWidget(panel->wsP, PWIDTH - (2 * 15) - (2 * 20), 20);
@@ -1313,15 +1355,21 @@ createInspectorForWindow(WWindow *wwin)
for (i=0; i < 2; i++) {
char *caption = NULL;
int flag = 0;
char *descr = NULL;
switch (i) {
case 0:
caption = _("Start Hidden");
flag = WFLAGP(wapp->main_window_desc, start_hidden);
descr = _("Automatically hide application when it's started.");
break;
case 1:
caption = _("No Application Icon");
flag = WFLAGP(wapp->main_window_desc, no_appicon);
descr = _("Disable the application icon for the application.\n"
"Note that you won't be able to dock it anymore,\n"
"and any icons that are already docked will stop\n"
"working correctly.");
break;
}
panel->appChk[i] = WMCreateSwitchButton(panel->appFrm);
@@ -1329,6 +1377,8 @@ createInspectorForWindow(WWindow *wwin)
WMResizeWidget(panel->appChk[i], 205, 20);
WMSetButtonSelected(panel->appChk[i], flag);
WMSetButtonText(panel->appChk[i], caption);
WMSetBalloonTextForView(descr, WMWidgetView(panel->appChk[i]));
}
if (WFLAGP(wwin, emulate_appicon)) {
@@ -1421,7 +1471,9 @@ void
wShowInspectorForWindow(WWindow *wwin)
{
if (wwin->flags.inspector_open)
return;
return;
WMSetBalloonEnabled(wwin->screen_ptr->wmscreen, wPreferences.help_balloon);
make_keys();
wwin->flags.inspector_open = 1;

View File

@@ -62,8 +62,6 @@ typedef struct InspectorPanel {
WMFrame *moreFrm;
WMButton *moreChk[8];
WMLabel *moreLbl;
/* 4th page. icon and workspace */
WMFrame *iconFrm;
WMLabel *iconLbl;

View File

@@ -281,10 +281,14 @@ showWorkspaceName(WScreen *scr, int workspace)
RXImage *ximg;
Pixmap text, mask;
int w, h;
int px, py;
char *name = scr->workspaces[workspace]->name;
int len = strlen(name);
int x, y;
if (wPreferences.workspace_name_display_position == WD_NONE)
return;
if (scr->workspace_name_timer) {
WMDeleteTimerHandler(scr->workspace_name_timer);
XUnmapWindow(dpy, scr->workspace_name);
@@ -309,11 +313,38 @@ showWorkspaceName(WScreen *scr, int workspace)
w = wTextWidth(scr->workspace_name_font->font, name, len);
h = scr->workspace_name_font->height;
switch (wPreferences.workspace_name_display_position) {
case WD_CENTER:
px = (scr->scr_width - (w+4))/2;
py = (scr->scr_height - (h+4))/2;
break;
case WD_TOP:
px = (scr->scr_width - (w+4))/2;
py = 0;
break;
case WD_BOTTOM:
px = (scr->scr_width - (w+4))/2;
py = scr->scr_height - h;
break;
case WD_TOPLEFT:
px = 0;
py = 0;
break;
case WD_TOPRIGHT:
px = scr->scr_width - w;
py = 0;
break;
case WD_BOTTOMLEFT:
px = 0;
py = scr->scr_height - h;
break;
case WD_BOTTOMRIGHT:
px = scr->scr_width - w;
py = scr->scr_height - h;
break;
}
XResizeWindow(dpy, scr->workspace_name, w+4, h+4);
XMoveWindow(dpy, scr->workspace_name, (scr->scr_width - (w+4))/2, 0);
/*
(scr->scr_height - (h+4))/2);
*/
XMoveWindow(dpy, scr->workspace_name, px, py);
text = XCreatePixmap(dpy, scr->w_win, w+4, h+4, scr->w_depth);
mask = XCreatePixmap(dpy, scr->w_win, w+4, h+4, 1);
@@ -356,9 +387,7 @@ showWorkspaceName(WScreen *scr, int workspace)
goto erro;
}
ximg = RGetXImage(scr->rcontext, scr->root_win,
(scr->scr_width - data->text->width)/2,
0 /* (scr->scr_height - data->text->height)/2 */,
ximg = RGetXImage(scr->rcontext, scr->root_win, px, py,
data->text->width, data->text->height);
if (!ximg) {
@@ -409,8 +438,7 @@ wWorkspaceChange(WScreen *scr, int workspace)
if (workspace != scr->current_workspace) {
wWorkspaceForceChange(scr, workspace);
} else {
if (!wPreferences.no_workspace_name_display)
showWorkspaceName(scr, workspace);
showWorkspaceName(scr, workspace);
}
}
@@ -577,8 +605,7 @@ wWorkspaceForceChange(WScreen *scr, int workspace)
}
}
if (!wPreferences.no_workspace_name_display)
showWorkspaceName(scr, workspace);
showWorkspaceName(scr, workspace);
#ifdef GNOME_STUFF
wGNOMEUpdateCurrentWorkspaceHint(scr);