]> Dogcows Code - chaz/openbox/commitdiff
fix segfaut from uninitialized focused_screen pointer
authorDana Jansens <danakj@orodu.net>
Mon, 13 May 2002 23:09:20 +0000 (23:09 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 13 May 2002 23:09:20 +0000 (23:09 +0000)
CHANGELOG
src/BaseDisplay.cc
src/Screen.cc
src/Toolbar.cc
src/openbox.cc

index d6cb233fe06697829808e6b61b270ab0b809eaf2..f0eb3e6843e518c3de210972c7d3d8f08a00b75d 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,12 @@
 Changelog for Openbox:
 
 1.2.0:
- * make image dithering value load correctly
+ * more focus code changes. also fixes a segfault from
+   last round of focus changes.                         (Ben Jansens)
+ * make image dithering value load correctly.           (Ben Jansens)
+
+ * fix segfault with multiple screens.                  (Shaleh Perry)
 
 1.1.0:
  * improved focused window logic to remove a segfault
index 15c0c7e6da42498cca9846e32da45c9b866518f8..81d3c5c72bb723edb2e1e78d8ac1c2c01a07efdc 100644 (file)
@@ -519,7 +519,6 @@ void BaseDisplay::ungrab(void) {
 
 void BaseDisplay::addTimer(BTimer *timer) {
   ASSERT(timer != (BTimer *) 0);
-  printf("ADDING TIMER\n");
 
   TimerList::iterator it;
   for (it = timerList.begin(); it != timerList.end(); ++it) {
@@ -535,7 +534,6 @@ void BaseDisplay::addTimer(BTimer *timer) {
 
 
 void BaseDisplay::removeTimer(BTimer *timer) {
-  printf("REMOVING TIMER\n");
   timerList.remove(timer);
 }
 
index 1d4ae1ff1728863bf26fb77c7d3c7b1a3e2c19f9..75f8459af4adf49487dcf6dd9681bb6e959f9ada 100644 (file)
@@ -225,6 +225,7 @@ BScreen::BScreen(Openbox &ob, int scrn, Resource &conf) : ScreenInfo(ob, scrn),
   slit = NULL;
 #endif // SLIT
   toolbar = NULL;
+  current_workspace = (Workspace *) 0;
 
 #ifdef    HAVE_GETPID
   pid_t bpid = getpid();
index 7ce387eb5c6ea1ba226cadc2a7cf25251879da3a..d801cb4bb88b8bd85e511541e0fd375332988ba9 100644 (file)
@@ -725,7 +725,9 @@ void Toolbar::checkClock(Bool redraw, Bool date) {
 
 void Toolbar::redrawWindowLabel(Bool redraw) {
   OpenboxWindow *foc = screen.getOpenbox().focusedWindow();
-  if (foc != (OpenboxWindow *) 0) {
+  if (foc == (OpenboxWindow *) 0) {
+    XClearWindow(display, frame.window_label);
+  } else {
     if (redraw)
       XClearWindow(display, frame.window_label);
 
@@ -780,8 +782,6 @@ void Toolbar::redrawWindowLabel(Bool redraw) {
     else
       XDrawString(display, frame.window_label, style->w_text_gc, dx,
                  (style->font->ascent + 1), *foc->getTitle(), dlen);
-  } else {
-    XClearWindow(display, frame.window_label);
   }
 }
  
index 7c25bc624d9eecc9b7685e487da78fbfed87c866..b603e56f3416e992520fac5ae7da3e93553c8b7e 100644 (file)
@@ -186,6 +186,7 @@ Openbox::Openbox(int m_argc, char **m_argv, char *dpy_name, char *rc)
   resource.titlebar_layout = NULL;
   resource.auto_raise_delay.tv_sec = resource.auto_raise_delay.tv_usec = 0;
 
+  focused_screen = (BScreen *) 0;
   masked_window = NULL;
   masked = None;
 
This page took 0.027964 seconds and 4 git commands to generate.