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:
@@ -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
7
NEWS
@@ -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
|
||||
---------
|
||||
|
||||
|
||||
@@ -285,7 +285,7 @@ WMSetButtonImage(WMButton *bPtr, WMPixmap *image)
|
||||
|
||||
if (image) {
|
||||
bPtr->dimage = WMCreatePixmapFromXPixmaps(WMWidgetScreen(bPtr),
|
||||
image->pixmap, None,
|
||||
image->pixmap, None,
|
||||
image->width, image->height,
|
||||
image->depth);
|
||||
updateDisabledMask(bPtr);
|
||||
@@ -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;
|
||||
@@ -575,13 +575,13 @@ paintButton(Button *bPtr)
|
||||
if (bPtr->altImage)
|
||||
image = bPtr->altImage;
|
||||
}
|
||||
|
||||
|
||||
if (bPtr->flags.statePush && bPtr->flags.bordered) {
|
||||
relief = WRSunken;
|
||||
offset = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (bPtr->flags.pushed) {
|
||||
if (bPtr->flags.pushIn) {
|
||||
relief = WRPushed;
|
||||
@@ -589,7 +589,7 @@ paintButton(Button *bPtr)
|
||||
}
|
||||
if (bPtr->flags.pushLight)
|
||||
gc = WMColorGC(scrPtr->white);
|
||||
|
||||
|
||||
if (bPtr->flags.pushChange) {
|
||||
if (bPtr->altCaption) {
|
||||
caption = bPtr->altCaption;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,15 +197,15 @@ 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);
|
||||
|
||||
|
||||
/***************** Options ****************/
|
||||
panel->optF = WMCreateFrame(panel->frame);
|
||||
WMResizeWidget(panel->optF, 485, 75);
|
||||
WMMoveWidget(panel->optF, 20, 145);
|
||||
|
||||
|
||||
panel->raisB = WMCreateSwitchButton(panel->optF);
|
||||
WMResizeWidget(panel->raisB, 440, 20);
|
||||
WMMoveWidget(panel->raisB, 20, 15);
|
||||
|
||||
@@ -75,7 +75,9 @@ typedef struct _WPrefs {
|
||||
WMButton *closeBtn;
|
||||
WMButton *undoBtn;
|
||||
WMButton *undosBtn;
|
||||
|
||||
|
||||
WMButton *balloonBtn;
|
||||
|
||||
WMFrame *banner;
|
||||
WMLabel *nameL;
|
||||
WMLabel *versionL;
|
||||
@@ -215,7 +217,7 @@ static void
|
||||
prepareForClose()
|
||||
{
|
||||
int i;
|
||||
|
||||
|
||||
for (i=0; i<WPrefs.sectionCount; i++) {
|
||||
PanelRec *rec = WMGetHangedData(WPrefs.sectionB[i]);
|
||||
|
||||
@@ -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)
|
||||
@@ -280,7 +295,21 @@ createMainWindow(WMScreen *scr)
|
||||
WMMoveWidget(WPrefs.closeBtn, 425, 350);
|
||||
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);
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
1692
WPrefs.app/po/cs.po
1692
WPrefs.app/po/cs.po
File diff suppressed because it is too large
Load Diff
1485
WPrefs.app/po/fi.po
Normal file
1485
WPrefs.app/po/fi.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
TitleJustify = center;
|
||||
HighlightColor = white;
|
||||
HighlightTextColor = black;
|
||||
ClipTitleColor = white;
|
||||
ClipTitleColor = black;
|
||||
CClipTitleColor = gray20;
|
||||
FTitleColor = white;
|
||||
PTitleColor = white;
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,9 +382,8 @@ 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 */
|
||||
char popup_switchmenu; /* Popup the switchmenu when Alt+Tabbing */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
},
|
||||
@@ -776,7 +791,7 @@ initDefaults()
|
||||
else
|
||||
entry->plvalue = NULL;
|
||||
}
|
||||
|
||||
|
||||
for (i=0; i<sizeof(staticOptionList)/sizeof(WDefaultEntry); i++) {
|
||||
entry = &staticOptionList[i];
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -61,8 +61,6 @@ typedef struct InspectorPanel {
|
||||
/* 3rd page. more attributes */
|
||||
WMFrame *moreFrm;
|
||||
WMButton *moreChk[8];
|
||||
|
||||
WMLabel *moreLbl;
|
||||
|
||||
/* 4th page. icon and workspace */
|
||||
WMFrame *iconFrm;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user