Merge pull request #3493 from Hinsbart/wm_class

x11: use different strings for WM_CLASS depending on context
This commit is contained in:
Rémi Verschelde 2016-02-03 11:30:22 +01:00
commit c0aade4ba4
5 changed files with 31 additions and 0 deletions

View file

@ -523,6 +523,10 @@ String OS::get_joy_guid(int p_device) const {
return "Default Joystick";
}
void OS::set_context(int p_context) {
}
OS::OS() {
last_error=NULL;
frames_drawn=0;

View file

@ -404,6 +404,13 @@ public:
virtual bool is_joy_known(int p_device);
virtual String get_joy_guid(int p_device)const;
enum EngineContext {
CONTEXT_EDITOR,
CONTEXT_PROJECTMAN,
};
virtual void set_context(int p_context);
OS();
virtual ~OS();

View file

@ -1321,6 +1321,7 @@ bool Main::start() {
}
}
}
OS::get_singleton()->set_context(OS::CONTEXT_EDITOR);
//editor_node->set_edited_scene(game);
} else {
@ -1465,6 +1466,7 @@ bool Main::start() {
ProjectManager *pmanager = memnew( ProjectManager );
sml->get_root()->add_child(pmanager);
OS::get_singleton()->set_context(OS::CONTEXT_PROJECTMAN);
}
#endif

View file

@ -1781,6 +1781,22 @@ String OS_X11::get_joy_guid(int p_device) const {
return input->get_joy_guid_remapped(p_device);
}
void OS_X11::set_context(int p_context) {
XClassHint* classHint = NULL;
classHint = XAllocClassHint();
if (classHint) {
if (p_context == CONTEXT_EDITOR)
classHint->res_name = (char *)"Godot_Editor";
if (p_context == CONTEXT_PROJECTMAN)
classHint->res_name = (char *)"Godot_ProjectList";
classHint->res_class = (char *)"Godot";
XSetClassHint(x11_display, x11_window, classHint);
XFree(classHint);
}
}
OS_X11::OS_X11() {
#ifdef RTAUDIO_ENABLED

View file

@ -226,6 +226,8 @@ public:
virtual bool is_joy_known(int p_device);
virtual String get_joy_guid(int p_device) const;
virtual void set_context(int p_context);
void run();
OS_X11();