diff --git a/ctl/ctlListView.cpp b/ctl/ctlListView.cpp index 0781217..c79c41e 100644 --- a/ctl/ctlListView.cpp +++ b/ctl/ctlListView.cpp @@ -41,9 +41,11 @@ ctlListView::ctlListView(wxWindow* p, int id, wxPoint pos, wxSize siz, long attr storelongstring = false; #ifdef __WXGTK__ if (id==CTL_STATUSLIST) { - SetBackgroundStyle(wxBG_STYLE_TRANSPARENT); - //SetBackgroundColour(wxTRANSPARENT); - //SetBackgroundStyle(wxBG_STYLE_PAINT); + if (iswayland) { + SetBackgroundColour(wxTRANSPARENT); + SetBackgroundStyle(wxBG_STYLE_PAINT); + } else + SetBackgroundStyle(wxBG_STYLE_TRANSPARENT); } diff --git a/ctl/ctlMenuToolbar.cpp b/ctl/ctlMenuToolbar.cpp index 554b3d1..e80e878 100644 --- a/ctl/ctlMenuToolbar.cpp +++ b/ctl/ctlMenuToolbar.cpp @@ -88,8 +88,13 @@ void ctlMenuButton::DoProcessLeftClick(wxMouseEvent &event) // ** Assume that pulldown is to the right of a standard toolbar button, // so, move the x position back one standard toolbar button's width - menu_pos.x = - tool_size.GetWidth(); + menu_pos.x = - tool_size.GetWidth() - button_size.GetHeight() / 2; menu_pos.y = button_size.GetHeight() / 2 + tool_size.GetHeight() / 2; + if (iswayland) { + wxPoint ps=GetPosition(); + menu_pos.x += ps.x; + menu_pos.y =tool_size.GetHeight()+button_size.GetHeight() / 2; + } #ifdef __WXMAC__ wxSize tbar_size = m_toolBar->GetSize(); diff --git a/include/pgAdmin3.h b/include/pgAdmin3.h index 177f610..21ea31f 100644 --- a/include/pgAdmin3.h +++ b/include/pgAdmin3.h @@ -101,7 +101,7 @@ extern wxString settingsIni; // The default settings file extern sysSettings *settings; // The settings manager extern frmMain *winMain; // The main app window - +extern bool iswayland; extern wxLocale *locale; // Application locale extern wxArrayInt existingLangs; // Language IDs extern wxArrayString existingLangNames; // Language Names diff --git a/pgAdmin3.cpp b/pgAdmin3.cpp index 711d391..55914b4 100644 --- a/pgAdmin3.cpp +++ b/pgAdmin3.cpp @@ -86,6 +86,7 @@ // Globals frmMain *winMain = 0; wxThread *updateThread = 0; +bool iswayland=true; #if defined(HAVE_OPENSSL_CRYPTO) || defined(HAVE_GCRYPT) #include "utils/sshTunnel.h" @@ -308,6 +309,11 @@ bool pgAdmin3::OnInit() wxLogNull noLog; locale->AddCatalog(wxT("fileutils")); } + wxString value; + iswayland=false; + if (wxGetEnv("XDG_SESSION_TYPE",&value)) { + iswayland=value.Contains("wayland"); + } #endif locale->AddCatalog(wxT("pgadmin3")); }