Fix Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged. when selecting Open with windows default viewer (queue processed) and file is not queue processes (Windows only), fixes #4539
This commit is contained in:
parent
4063842564
commit
dfdf4bf39d
@ -127,6 +127,7 @@ void findOriginalEntries (const std::vector<ThumbBrowserEntryBase*>& entries)
|
|||||||
|
|
||||||
FileBrowser::FileBrowser () :
|
FileBrowser::FileBrowser () :
|
||||||
menuLabel(nullptr),
|
menuLabel(nullptr),
|
||||||
|
miOpenDefaultViewer(nullptr),
|
||||||
selectDF(nullptr),
|
selectDF(nullptr),
|
||||||
thisIsDF(nullptr),
|
thisIsDF(nullptr),
|
||||||
autoDF(nullptr),
|
autoDF(nullptr),
|
||||||
@ -225,8 +226,6 @@ FileBrowser::FileBrowser () :
|
|||||||
* *********************/
|
* *********************/
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
Gtk::manage(miOpenDefaultViewer = new Gtk::MenuItem (M("FILEBROWSER_OPENDEFAULTVIEWER")));
|
Gtk::manage(miOpenDefaultViewer = new Gtk::MenuItem (M("FILEBROWSER_OPENDEFAULTVIEWER")));
|
||||||
#else
|
|
||||||
miOpenDefaultViewer = nullptr;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Build a list of menu items
|
// Build a list of menu items
|
||||||
@ -240,7 +239,7 @@ FileBrowser::FileBrowser () :
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Attach them to menu
|
// Attach them to menu
|
||||||
if (!mMenuExtProgs.empty() || miOpenDefaultViewer != nullptr) {
|
if (!mMenuExtProgs.empty() || miOpenDefaultViewer) {
|
||||||
amiExtProg = new Gtk::MenuItem*[mMenuExtProgs.size()];
|
amiExtProg = new Gtk::MenuItem*[mMenuExtProgs.size()];
|
||||||
int itemNo = 0;
|
int itemNo = 0;
|
||||||
|
|
||||||
@ -249,11 +248,12 @@ FileBrowser::FileBrowser () :
|
|||||||
p++;
|
p++;
|
||||||
Gtk::Menu* submenuExtProg = Gtk::manage (new Gtk::Menu());
|
Gtk::Menu* submenuExtProg = Gtk::manage (new Gtk::Menu());
|
||||||
|
|
||||||
if (miOpenDefaultViewer != nullptr) {
|
#ifdef WIN32
|
||||||
|
if (miOpenDefaultViewer) {
|
||||||
submenuExtProg->attach (*miOpenDefaultViewer, 0, 1, p, p + 1);
|
submenuExtProg->attach (*miOpenDefaultViewer, 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
for (auto it = mMenuExtProgs.begin(); it != mMenuExtProgs.end(); it++, itemNo++) {
|
for (auto it = mMenuExtProgs.begin(); it != mMenuExtProgs.end(); it++, itemNo++) {
|
||||||
submenuExtProg->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p + 1);
|
submenuExtProg->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
@ -262,11 +262,12 @@ FileBrowser::FileBrowser () :
|
|||||||
submenuExtProg->show_all ();
|
submenuExtProg->show_all ();
|
||||||
menuExtProg->set_submenu (*submenuExtProg);
|
menuExtProg->set_submenu (*submenuExtProg);
|
||||||
} else {
|
} else {
|
||||||
if (miOpenDefaultViewer != nullptr) {
|
#ifdef WIN32
|
||||||
|
if (miOpenDefaultViewer) {
|
||||||
pmenu->attach (*miOpenDefaultViewer, 0, 1, p, p + 1);
|
pmenu->attach (*miOpenDefaultViewer, 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
for (auto it = mMenuExtProgs.begin(); it != mMenuExtProgs.end(); it++, itemNo++) {
|
for (auto it = mMenuExtProgs.begin(); it != mMenuExtProgs.end(); it++, itemNo++) {
|
||||||
pmenu->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p + 1);
|
pmenu->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p + 1);
|
||||||
p++;
|
p++;
|
||||||
@ -419,9 +420,11 @@ FileBrowser::FileBrowser () :
|
|||||||
amiExtProg[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), amiExtProg[i]));
|
amiExtProg[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), amiExtProg[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (miOpenDefaultViewer != nullptr) {
|
#ifdef WIN32
|
||||||
|
if (miOpenDefaultViewer) {
|
||||||
miOpenDefaultViewer->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), miOpenDefaultViewer));
|
miOpenDefaultViewer->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), miOpenDefaultViewer));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
trash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), trash));
|
trash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), trash));
|
||||||
untrash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), untrash));
|
untrash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), untrash));
|
||||||
@ -984,8 +987,10 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m)
|
|||||||
tbl->clearFromCacheRequested (mselected, true);
|
tbl->clearFromCacheRequested (mselected, true);
|
||||||
|
|
||||||
//queue_draw ();
|
//queue_draw ();
|
||||||
} else if (miOpenDefaultViewer != nullptr && m == miOpenDefaultViewer) {
|
#ifdef WIN32
|
||||||
|
} else if (miOpenDefaultViewer && m == miOpenDefaultViewer) {
|
||||||
openDefaultViewer(1);
|
openDefaultViewer(1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1091,6 +1096,7 @@ void FileBrowser::partPasteProfile ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
void FileBrowser::openDefaultViewer (int destination)
|
void FileBrowser::openDefaultViewer (int destination)
|
||||||
{
|
{
|
||||||
bool success = true;
|
bool success = true;
|
||||||
@ -1104,10 +1110,11 @@ void FileBrowser::openDefaultViewer (int destination)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!success) {
|
if (!success) {
|
||||||
Gtk::MessageDialog msgd (M("MAIN_MSG_IMAGEUNPROCESSED"), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
Gtk::MessageDialog msgd(getToplevelWindow(this), M("MAIN_MSG_IMAGEUNPROCESSED"), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||||
msgd.run ();
|
msgd.run ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
bool FileBrowser::keyPressed (GdkEventKey* event)
|
bool FileBrowser::keyPressed (GdkEventKey* event)
|
||||||
{
|
{
|
||||||
|
@ -190,7 +190,9 @@ public:
|
|||||||
void selectImage (Glib::ustring fname);
|
void selectImage (Glib::ustring fname);
|
||||||
void openNextPreviousEditorImage (Glib::ustring fname, eRTNav eNextPrevious);
|
void openNextPreviousEditorImage (Glib::ustring fname, eRTNav eNextPrevious);
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
void openDefaultViewer (int destination);
|
void openDefaultViewer (int destination);
|
||||||
|
#endif
|
||||||
|
|
||||||
void thumbRearrangementNeeded ();
|
void thumbRearrangementNeeded ();
|
||||||
void _thumbRearrangementNeeded ();
|
void _thumbRearrangementNeeded ();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user