summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--src/Remember.cc65
-rw-r--r--src/Remember.hh2
-rw-r--r--src/Screen.cc2
-rw-r--r--src/Screen.hh4
-rw-r--r--src/Window.cc6
6 files changed, 44 insertions, 42 deletions
diff --git a/ChangeLog b/ChangeLog
index bbf252c..7dab9ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,16 @@
1 (Format: Year/Month/Day) 1 (Format: Year/Month/Day)
2Changes for 1.0rc3: 2Changes for 1.0rc3:
3*07/03/03 3*07/03/06:
4 * session.screen<N>.defaultDeco now allows same strings as apps file (Mark)
5 Screen.cc/hh Window.cc Remember.cc/hh
6*07/03/03:
4 * Added typeahead support to menus (patch by Philipp Goedl, modified by Mark 7 * Added typeahead support to menus (patch by Philipp Goedl, modified by Mark
5 and Matteo Galiazzo) 8 and Matteo Galiazzo)
6 - Added new style item menu.frame.underlineColor: <color> for displaying 9 - Added new style item menu.frame.underlineColor: <color> for displaying
7 matching items 10 matching items
8 FbTk/Menu.cc/hh MenuItem.cc/hh MenuTheme.cc/hh Makefile.am and added 11 FbTk/Menu.cc/hh MenuItem.cc/hh MenuTheme.cc/hh Makefile.am and added
9 FbTk/ITypeAheadable.hh TypeAhead.hh SearchResult.cc/hh 12 FbTk/ITypeAheadable.hh TypeAhead.hh SearchResult.cc/hh
10*07/03/02 13*07/03/02:
11 * Added support for keypad enter key in menu (Mark) 14 * Added support for keypad enter key in menu (Mark)
12 FbTk/Menu.cc 15 FbTk/Menu.cc
13*07/02/28: 16*07/02/28:
diff --git a/src/Remember.cc b/src/Remember.cc
index 62c0d18..2b8fbce 100644
--- a/src/Remember.cc
+++ b/src/Remember.cc
@@ -290,6 +290,32 @@ Remember::~Remember() {
290 s_instance = 0; 290 s_instance = 0;
291} 291}
292 292
293int Remember::getDecoFromString(const string &str_label) {
294 if (strcasecmp(str_label.c_str(), "NONE") == 0)
295 return 0;
296 if (strcasecmp(str_label.c_str(), "NORMAL") == 0)
297 return FluxboxWindow::DECORM_LAST - 1;
298 if (strcasecmp(str_label.c_str(), "TINY") == 0)
299 return FluxboxWindow::DECORM_TITLEBAR
300 | FluxboxWindow::DECORM_ICONIFY
301 | FluxboxWindow::DECORM_MENU
302 | FluxboxWindow::DECORM_TAB;
303 if (strcasecmp(str_label.c_str(), "TOOL") == 0)
304 return FluxboxWindow::DECORM_TITLEBAR
305 | FluxboxWindow::DECORM_MENU;
306 if (strcasecmp(str_label.c_str(), "BORDER") == 0)
307 return FluxboxWindow::DECORM_BORDER
308 | FluxboxWindow::DECORM_MENU;
309 if (strcasecmp(str_label.c_str(), "TAB") == 0)
310 return FluxboxWindow::DECORM_BORDER
311 | FluxboxWindow::DECORM_MENU
312 | FluxboxWindow::DECORM_TAB;
313 unsigned int mask;
314 if (getuint(str_label.c_str(), mask))
315 return mask;
316 return -1;
317}
318
293Application* Remember::find(WinClient &winclient) { 319Application* Remember::find(WinClient &winclient) {
294 // if it is already associated with a application, return that one 320 // if it is already associated with a application, return that one
295 // otherwise, check it against every pattern that we've got 321 // otherwise, check it against every pattern that we've got
@@ -448,40 +474,11 @@ int Remember::parseApp(ifstream &file, Application &app, string *first_line) {
448 app.rememberIconHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0)); 474 app.rememberIconHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0));
449 app.rememberFocusHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0)); 475 app.rememberFocusHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0));
450 } else if (strcasecmp(str_key.c_str(), "Deco") == 0) { 476 } else if (strcasecmp(str_key.c_str(), "Deco") == 0) {
451 if (strcasecmp(str_label.c_str(), "NONE") == 0) { 477 int deco = getDecoFromString(str_label);
452 app.rememberDecostate((unsigned int) 0); 478 if (deco == -1)
453 } else if (strcasecmp(str_label.c_str(), "NORMAL") == 0) { 479 had_error = 1;
454 app.rememberDecostate((unsigned int) 0xfffffff); 480 else
455 } else if (strcasecmp(str_label.c_str(), "TINY") == 0) { 481 app.rememberDecostate((unsigned int)deco);
456 app.rememberDecostate((unsigned int)
457 FluxboxWindow::DECORM_TITLEBAR
458 | FluxboxWindow::DECORM_ICONIFY
459 | FluxboxWindow::DECORM_MENU
460 | FluxboxWindow::DECORM_TAB
461 );
462 } else if (strcasecmp(str_label.c_str(), "TOOL") == 0) {
463 app.rememberDecostate((unsigned int)
464 FluxboxWindow::DECORM_TITLEBAR
465 | FluxboxWindow::DECORM_MENU
466 );
467 } else if (strcasecmp(str_label.c_str(), "BORDER") == 0) {
468 app.rememberDecostate((unsigned int)
469 FluxboxWindow::DECORM_BORDER
470 | FluxboxWindow::DECORM_MENU
471 );
472 } else if (strcasecmp(str_label.c_str(), "TAB") == 0) {
473 app.rememberDecostate((unsigned int)
474 FluxboxWindow::DECORM_BORDER
475 | FluxboxWindow::DECORM_MENU
476 | FluxboxWindow::DECORM_TAB
477 );
478 } else {
479 unsigned int mask;
480 if (getuint(str_label.c_str(), mask))
481 app.rememberDecostate(mask);
482 else
483 had_error = 1;
484 }
485 } else if (strcasecmp(str_key.c_str(), "Alpha") == 0) { 482 } else if (strcasecmp(str_key.c_str(), "Alpha") == 0) {
486 int focused_a, unfocused_a; 483 int focused_a, unfocused_a;
487 if (sscanf(str_label.c_str(), "%i %i", &focused_a, &unfocused_a) == 2) 484 if (sscanf(str_label.c_str(), "%i %i", &focused_a, &unfocused_a) == 2)
diff --git a/src/Remember.hh b/src/Remember.hh
index 581e525..a1e75da 100644
--- a/src/Remember.hh
+++ b/src/Remember.hh
@@ -205,6 +205,8 @@ public:
205 Remember(); 205 Remember();
206 ~Remember(); 206 ~Remember();
207 207
208 static int getDecoFromString(const std::string &str);
209
208 Application* find(WinClient &winclient); 210 Application* find(WinClient &winclient);
209 Application* add(WinClient &winclient); 211 Application* add(WinClient &winclient);
210 FluxboxWindow* findGroup(Application *, BScreen &screen); 212 FluxboxWindow* findGroup(Application *, BScreen &screen);
diff --git a/src/Screen.cc b/src/Screen.cc
index 3dfe324..3f3daf9 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -293,7 +293,7 @@ BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager &rm,
293 auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"), 293 auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"),
294 click_raises(rm, true, scrname+".clickRaises", altscrname+".ClickRaises"), 294 click_raises(rm, true, scrname+".clickRaises", altscrname+".ClickRaises"),
295 decorate_transient(rm, true, scrname+".decorateTransient", altscrname+".DecorateTransient"), 295 decorate_transient(rm, true, scrname+".decorateTransient", altscrname+".DecorateTransient"),
296 default_deco(rm, FluxboxWindow::DECORM_LAST-1, scrname+".defaultDeco", altscrname+".DefaultDeco"), 296 default_deco(rm, "NORMAL", scrname+".defaultDeco", altscrname+".DefaultDeco"),
297 rootcommand(rm, "", scrname+".rootCommand", altscrname+".RootCommand"), 297 rootcommand(rm, "", scrname+".rootCommand", altscrname+".RootCommand"),
298 resize_model(rm, BOTTOMRESIZE, scrname+".resizeMode", altscrname+".ResizeMode"), 298 resize_model(rm, BOTTOMRESIZE, scrname+".resizeMode", altscrname+".ResizeMode"),
299 tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement", altscrname+".Tab.Placement"), 299 tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement", altscrname+".Tab.Placement"),
diff --git a/src/Screen.hh b/src/Screen.hh
index 8694f6d..bf03ac6 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -123,7 +123,7 @@ public:
123 bool doFullMax() const { return *resource.full_max; } 123 bool doFullMax() const { return *resource.full_max; }
124 bool doShowWindowPos() const { return *resource.show_window_pos; } 124 bool doShowWindowPos() const { return *resource.show_window_pos; }
125 bool decorateTransient() const { return *resource.decorate_transient; } 125 bool decorateTransient() const { return *resource.decorate_transient; }
126 unsigned int defaultDeco() const { return *resource.default_deco; } 126 const std::string &defaultDeco() const { return *resource.default_deco; }
127 const std::string &windowMenuFilename() const { return *resource.windowmenufile; } 127 const std::string &windowMenuFilename() const { return *resource.windowmenufile; }
128 FbTk::ImageControl &imageControl() { return *m_image_control.get(); } 128 FbTk::ImageControl &imageControl() { return *m_image_control.get(); }
129 // menus 129 // menus
@@ -449,7 +449,7 @@ private:
449 workspace_warping, 449 workspace_warping,
450 desktop_wheeling, reverse_wheeling, show_window_pos, 450 desktop_wheeling, reverse_wheeling, show_window_pos,
451 auto_raise, click_raises, decorate_transient; 451 auto_raise, click_raises, decorate_transient;
452 FbTk::Resource<unsigned int> default_deco; 452 FbTk::Resource<std::string> default_deco;
453 FbTk::Resource<std::string> rootcommand; 453 FbTk::Resource<std::string> rootcommand;
454 FbTk::Resource<ResizeModel> resize_model; 454 FbTk::Resource<ResizeModel> resize_model;
455 FbTk::Resource<FbWinFrame::TabPlacement> tab_placement; 455 FbTk::Resource<FbWinFrame::TabPlacement> tab_placement;
diff --git a/src/Window.cc b/src/Window.cc
index 3d0db79..5b10058 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -394,10 +394,10 @@ void FluxboxWindow::init() {
394 m_blackbox_attrib.premax_w = m_blackbox_attrib.premax_h = 0; 394 m_blackbox_attrib.premax_w = m_blackbox_attrib.premax_h = 0;
395 395
396 // set default decorations but don't apply them 396 // set default decorations but don't apply them
397 setDecorationMask(screen().defaultDeco(), false); 397 setDecorationMask(Remember::getDecoFromString(screen().defaultDeco()), false);
398 398
399 functions.resize = functions.move = functions.iconify = functions.maximize = functions.close = functions.tabable = true; 399 functions.resize = functions.move = functions.iconify = functions.maximize
400 decorations.close = false; 400 = functions.close = functions.tabable = true;
401 401
402 if (m_client->getBlackboxHint() != 0) 402 if (m_client->getBlackboxHint() != 0)
403 updateBlackboxHintsFromClient(*m_client); 403 updateBlackboxHintsFromClient(*m_client);