Fixed gnome init problems (Simon)
This commit is contained in:
parent
9a82a5b1dc
commit
79aec8465f
5 changed files with 34 additions and 18 deletions
|
@ -3,6 +3,8 @@ Changes for 0.1.15:
|
||||||
*03/02/16:
|
*03/02/16:
|
||||||
* Added layer submenu to window menu + small fix (Simon)
|
* Added layer submenu to window menu + small fix (Simon)
|
||||||
Screen.cc Window.hh/cc fluxbox.hh
|
Screen.cc Window.hh/cc fluxbox.hh
|
||||||
|
* Fixed gnome workspace initialisation issues (Simon)
|
||||||
|
Gnome.cc Window.hh/cc Screen.cc
|
||||||
*03/02/15:
|
*03/02/15:
|
||||||
* Added Style menu and fixed theme listeners for FbWinFrame, Menu and Toolbar (Henrik)
|
* Added Style menu and fixed theme listeners for FbWinFrame, Menu and Toolbar (Henrik)
|
||||||
ToolbarTheme.hh/cc, Toolbar.hh/cc, FbTk Menu.hh/cc, FbTk MenuTheme.hh/cc,
|
ToolbarTheme.hh/cc, Toolbar.hh/cc, FbTk Menu.hh/cc, FbTk MenuTheme.hh/cc,
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Gnome.cc,v 1.9 2003/02/09 14:11:12 rathnor Exp $
|
// $Id: Gnome.cc,v 1.10 2003/02/16 17:57:54 rathnor Exp $
|
||||||
|
|
||||||
#include "Gnome.hh"
|
#include "Gnome.hh"
|
||||||
|
|
||||||
|
@ -107,13 +107,14 @@ void Gnome::setupWindow(FluxboxWindow &win) {
|
||||||
XFree (data);
|
XFree (data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// load gnome layer atom
|
// load gnome workspace atom
|
||||||
if (XGetWindowProperty(disp, win.getClientWindow(),
|
if (XGetWindowProperty(disp, win.getClientWindow(),
|
||||||
m_gnome_wm_win_workspace, 0, 1, False, XA_CARDINAL,
|
m_gnome_wm_win_workspace, 0, 1, False, XA_CARDINAL,
|
||||||
&ret_type, &fmt, &nitems, &bytes_after,
|
&ret_type, &fmt, &nitems, &bytes_after,
|
||||||
(unsigned char **) &data) == Success && data) {
|
(unsigned char **) &data) == Success && data) {
|
||||||
flags = *data;
|
unsigned int workspace_num = *data;
|
||||||
win.getScreen()->reassociateWindow(&win, flags ,false);
|
if (win.getWorkspaceNumber() != workspace_num)
|
||||||
|
win.getScreen()->reassociateWindow(&win, workspace_num, false);
|
||||||
XFree (data);
|
XFree (data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Screen.cc,v 1.108 2003/02/16 16:45:23 fluxgen Exp $
|
// $Id: Screen.cc,v 1.109 2003/02/16 17:57:54 rathnor Exp $
|
||||||
|
|
||||||
|
|
||||||
#include "Screen.hh"
|
#include "Screen.hh"
|
||||||
|
@ -1106,6 +1106,10 @@ FluxboxWindow *BScreen::createWindow(Window client) {
|
||||||
Fluxbox::instance()->attachSignals(*win);
|
Fluxbox::instance()->attachSignals(*win);
|
||||||
setupWindowActions(*win);
|
setupWindowActions(*win);
|
||||||
}
|
}
|
||||||
|
if (win->getWorkspaceNumber() == getCurrentWorkspaceID() || win->isStuck()) {
|
||||||
|
win->show();
|
||||||
|
XSync(FbTk::App::instance()->display(), False);
|
||||||
|
}
|
||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1127,8 +1131,8 @@ void BScreen::setupWindowActions(FluxboxWindow &win) {
|
||||||
CommandRef close_cmd(new WindowCmd(win, &FluxboxWindow::close));
|
CommandRef close_cmd(new WindowCmd(win, &FluxboxWindow::close));
|
||||||
CommandRef shade_cmd(new WindowCmd(win, &FluxboxWindow::shade));
|
CommandRef shade_cmd(new WindowCmd(win, &FluxboxWindow::shade));
|
||||||
CommandRef raise_cmd(new WindowCmd(win, &FluxboxWindow::raise));
|
CommandRef raise_cmd(new WindowCmd(win, &FluxboxWindow::raise));
|
||||||
|
CommandRef lower_cmd(new WindowCmd(win, &FluxboxWindow::lower));
|
||||||
CommandRef raise_and_focus_cmd(new WindowCmd(win, &FluxboxWindow::raiseAndFocus));
|
CommandRef raise_and_focus_cmd(new WindowCmd(win, &FluxboxWindow::raiseAndFocus));
|
||||||
CommandRef lower_cmd(new WindowCmd(win, &FluxboxWindow::raise));
|
|
||||||
CommandRef stick_cmd(new WindowCmd(win, &FluxboxWindow::stick));
|
CommandRef stick_cmd(new WindowCmd(win, &FluxboxWindow::stick));
|
||||||
CommandRef show_menu_cmd(new WindowCmd(win, &FluxboxWindow::popupMenu));
|
CommandRef show_menu_cmd(new WindowCmd(win, &FluxboxWindow::popupMenu));
|
||||||
|
|
||||||
|
@ -1138,7 +1142,6 @@ void BScreen::setupWindowActions(FluxboxWindow &win) {
|
||||||
// get titlebar configuration
|
// get titlebar configuration
|
||||||
const vector<Fluxbox::Titlebar> *dir = &Fluxbox::instance()->getTitlebarLeft();
|
const vector<Fluxbox::Titlebar> *dir = &Fluxbox::instance()->getTitlebarLeft();
|
||||||
for (char c=0; c<2; c++) {
|
for (char c=0; c<2; c++) {
|
||||||
|
|
||||||
for (size_t i=0; i< dir->size(); ++i) {
|
for (size_t i=0; i< dir->size(); ++i) {
|
||||||
//create new buttons
|
//create new buttons
|
||||||
FbTk::Button *newbutton = 0;
|
FbTk::Button *newbutton = 0;
|
||||||
|
@ -1324,7 +1327,6 @@ void BScreen::reassociateGroup(FluxboxWindow *w, unsigned int wkspc_id, bool ign
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, bool ignore_sticky) {
|
void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, bool ignore_sticky) {
|
||||||
if (! w) return;
|
if (! w) return;
|
||||||
|
|
||||||
|
@ -1338,6 +1340,7 @@ void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, bool ig
|
||||||
if (w->getWorkspaceNumber() == wkspc_id)
|
if (w->getWorkspaceNumber() == wkspc_id)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
if (w->isIconic()) {
|
if (w->isIconic()) {
|
||||||
removeIcon(w);
|
removeIcon(w);
|
||||||
getWorkspace(wkspc_id)->addWindow(w);
|
getWorkspace(wkspc_id)->addWindow(w);
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Window.cc,v 1.116 2003/02/16 15:12:07 rathnor Exp $
|
// $Id: Window.cc,v 1.117 2003/02/16 17:57:53 rathnor Exp $
|
||||||
|
|
||||||
#include "Window.hh"
|
#include "Window.hh"
|
||||||
|
|
||||||
|
@ -261,7 +261,7 @@ FluxboxWindow::FluxboxWindow(Window w, BScreen *s, int screen_num,
|
||||||
if (workspace_number < 0 || workspace_number >= screen->getCount())
|
if (workspace_number < 0 || workspace_number >= screen->getCount())
|
||||||
workspace_number = screen->getCurrentWorkspaceID();
|
workspace_number = screen->getCurrentWorkspaceID();
|
||||||
|
|
||||||
restoreAttributes(place_window);
|
restoreAttributes();
|
||||||
|
|
||||||
moveToLayer(m_layernum);
|
moveToLayer(m_layernum);
|
||||||
screen->getWorkspace(workspace_number)->addWindow(this, place_window);
|
screen->getWorkspace(workspace_number)->addWindow(this, place_window);
|
||||||
|
@ -289,10 +289,6 @@ FluxboxWindow::FluxboxWindow(Window w, BScreen *s, int screen_num,
|
||||||
// no focus default
|
// no focus default
|
||||||
setFocusFlag(false);
|
setFocusFlag(false);
|
||||||
|
|
||||||
// finaly show the frame and the client window
|
|
||||||
|
|
||||||
m_frame.show();
|
|
||||||
XSync(display, False);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -931,6 +927,15 @@ void FluxboxWindow::setTab(bool flag) {
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FluxboxWindow::hide() {
|
||||||
|
m_windowmenu.hide();
|
||||||
|
m_frame.hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FluxboxWindow::show() {
|
||||||
|
m_frame.show();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Unmaps the window and removes it from workspace list
|
Unmaps the window and removes it from workspace list
|
||||||
*/
|
*/
|
||||||
|
@ -1103,6 +1108,7 @@ void FluxboxWindow::maximizeVertical() {
|
||||||
|
|
||||||
|
|
||||||
void FluxboxWindow::setWorkspace(int n) {
|
void FluxboxWindow::setWorkspace(int n) {
|
||||||
|
|
||||||
workspace_number = n;
|
workspace_number = n;
|
||||||
|
|
||||||
blackbox_attrib.flags |= BaseDisplay::ATTRIB_WORKSPACE;
|
blackbox_attrib.flags |= BaseDisplay::ATTRIB_WORKSPACE;
|
||||||
|
@ -1501,7 +1507,7 @@ void FluxboxWindow::setGravityOffsets() {
|
||||||
* but doesn't change the actual state
|
* but doesn't change the actual state
|
||||||
* (so the caller can set defaults etc as well)
|
* (so the caller can set defaults etc as well)
|
||||||
*/
|
*/
|
||||||
void FluxboxWindow::restoreAttributes(bool place_window) {
|
void FluxboxWindow::restoreAttributes() {
|
||||||
if (!getState())
|
if (!getState())
|
||||||
current_state = NormalState;
|
current_state = NormalState;
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Window.hh,v 1.47 2003/02/16 16:43:00 fluxgen Exp $
|
// $Id: Window.hh,v 1.48 2003/02/16 17:57:53 rathnor Exp $
|
||||||
|
|
||||||
#ifndef WINDOW_HH
|
#ifndef WINDOW_HH
|
||||||
#define WINDOW_HH
|
#define WINDOW_HH
|
||||||
|
@ -111,6 +111,10 @@ public:
|
||||||
void raiseAndFocus() { raise(); setInputFocus(); }
|
void raiseAndFocus() { raise(); setInputFocus(); }
|
||||||
void setTab(bool flag);
|
void setTab(bool flag);
|
||||||
void setFocusFlag(bool flag);
|
void setFocusFlag(bool flag);
|
||||||
|
// map this window
|
||||||
|
void show();
|
||||||
|
// unmap this window
|
||||||
|
void hide();
|
||||||
void iconify();
|
void iconify();
|
||||||
void deiconify(bool = true, bool = true);
|
void deiconify(bool = true, bool = true);
|
||||||
/// destroy this window
|
/// destroy this window
|
||||||
|
@ -145,7 +149,7 @@ public:
|
||||||
|
|
||||||
void setWorkspace(int n);
|
void setWorkspace(int n);
|
||||||
void changeBlackboxHints(const BaseDisplay::BlackboxHints &bh);
|
void changeBlackboxHints(const BaseDisplay::BlackboxHints &bh);
|
||||||
void restoreAttributes(bool place_window);
|
void restoreAttributes();
|
||||||
void showMenu(int mx, int my);
|
void showMenu(int mx, int my);
|
||||||
// popup menu on last button press position
|
// popup menu on last button press position
|
||||||
void popupMenu();
|
void popupMenu();
|
||||||
|
|
Loading…
Reference in a new issue