diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2010-01-12 09:59:58 +0000 |
|---|---|---|
| committer | Jon A. Cruz <jon@joncruz.org> | 2010-01-12 09:59:58 +0000 |
| commit | 36c2b2febc6c0c11991849232c907d5573600935 (patch) | |
| tree | cc2d14a07b4903b2b51a1d3298e7d0062c3278f6 /src/ui/uxmanager.cpp | |
| parent | Enabling now that some have confirmed proper functionality on 64-bit. (diff) | |
| download | inkscape-36c2b2febc6c0c11991849232c907d5573600935.tar.gz inkscape-36c2b2febc6c0c11991849232c907d5573600935.zip | |
Initial cut of disabling floating windows on window managers with problems.
(bzr r8971)
Diffstat (limited to 'src/ui/uxmanager.cpp')
| -rw-r--r-- | src/ui/uxmanager.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/ui/uxmanager.cpp b/src/ui/uxmanager.cpp index 2153606c1..ddc28a858 100644 --- a/src/ui/uxmanager.cpp +++ b/src/ui/uxmanager.cpp @@ -20,9 +20,18 @@ #include "widgets/toolbox.h" #include "widgets/desktop-widget.h" +#ifdef GDK_WINDOWING_X11 +#include <gdk/gdkx.h> +#endif // GDK_WINDOWING_X11 + using std::map; using std::vector; + +gchar const* KDE_WINDOW_MANAGER_NAME = "KWin"; +gchar const* UNKOWN_WINDOW_MANAGER_NAME = "unknown"; + + static vector<SPDesktop*> desktops; static vector<SPDesktopWidget*> dtws; static map<SPDesktop*, vector<GtkWidget*> > trackedBoxes; @@ -43,19 +52,38 @@ UXManager* UXManager::getInstance() } -UXManager::UXManager() +UXManager::UXManager() : + floatwindowIssues(false) { ege::TagSet tags; tags.setLang("en"); tags.addTag(ege::Tag("General")); tags.addTag(ege::Tag("Icons")); + +#ifdef GDK_WINDOWING_X11 + char const* wmName = gdk_x11_screen_get_window_manager_name( gdk_screen_get_default() ); + //g_message("Window manager is [%s]", wmName); + + //if (g_ascii_strcasecmp( wmName, UNKOWN_WINDOW_MANAGER_NAME ) == 0) { + if (g_ascii_strcasecmp( wmName, KDE_WINDOW_MANAGER_NAME ) == 0) { + floatwindowIssues = true; + } +#elif GDK_WINDOWING_WIN32 + floatwindowIssues = true; +#endif // GDK_WINDOWING_WIN32 } UXManager::~UXManager() { } + +bool UXManager::isFloatWindowProblem() const +{ + return floatwindowIssues; +} + void UXManager::setTask(SPDesktop* dt, gint val) { for (vector<SPDesktopWidget*>::iterator it = dtws.begin(); it != dtws.end(); ++it) { |
