mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
get window name before anything else.
2002-12-15 Havoc Pennington <hp@pobox.com> * src/window.c (meta_window_new): get window name before anything else. * src/xprops.c (validate_or_free_results): instead of suggesting how to get window title etc. with xprop, just print out the window title. much better.
This commit is contained in:
parent
4ad2d1a048
commit
8a9a4aba77
@ -1,3 +1,12 @@
|
|||||||
|
2002-12-15 Havoc Pennington <hp@pobox.com>
|
||||||
|
|
||||||
|
* src/window.c (meta_window_new): get window name before anything
|
||||||
|
else.
|
||||||
|
|
||||||
|
* src/xprops.c (validate_or_free_results): instead of suggesting
|
||||||
|
how to get window title etc. with xprop, just print out the
|
||||||
|
window title. much better.
|
||||||
|
|
||||||
2002-12-15 Havoc Pennington <hp@pobox.com>
|
2002-12-15 Havoc Pennington <hp@pobox.com>
|
||||||
|
|
||||||
* src/xprops.c (validate_or_free_results): make the warning about
|
* src/xprops.c (validate_or_free_results): make the warning about
|
||||||
|
@ -436,11 +436,14 @@ meta_window_new (MetaDisplay *display,
|
|||||||
window->initial_workspace = 0; /* not used */
|
window->initial_workspace = 0; /* not used */
|
||||||
meta_display_register_x_window (display, &window->xwindow, window);
|
meta_display_register_x_window (display, &window->xwindow, window);
|
||||||
|
|
||||||
/* Fill these in the order we want them to be gotten */
|
/* Fill these in the order we want them to be gotten.
|
||||||
|
* we want to get window name and class first
|
||||||
|
* so we can use them in error messages and such.
|
||||||
|
*/
|
||||||
i = 0;
|
i = 0;
|
||||||
|
initial_props[i++] = display->atom_net_wm_name;
|
||||||
initial_props[i++] = display->atom_wm_client_machine;
|
initial_props[i++] = display->atom_wm_client_machine;
|
||||||
initial_props[i++] = display->atom_net_wm_pid;
|
initial_props[i++] = display->atom_net_wm_pid;
|
||||||
initial_props[i++] = display->atom_net_wm_name;
|
|
||||||
initial_props[i++] = XA_WM_NAME;
|
initial_props[i++] = XA_WM_NAME;
|
||||||
initial_props[i++] = display->atom_net_wm_icon_name;
|
initial_props[i++] = display->atom_net_wm_icon_name;
|
||||||
initial_props[i++] = XA_WM_ICON_NAME;
|
initial_props[i++] = XA_WM_ICON_NAME;
|
||||||
|
33
src/xprops.c
33
src/xprops.c
@ -87,6 +87,7 @@ from The Open Group.
|
|||||||
#include "metacity-Xatomtype.h"
|
#include "metacity-Xatomtype.h"
|
||||||
#include <X11/Xatom.h>
|
#include <X11/Xatom.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "window.h"
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -109,6 +110,10 @@ validate_or_free_results (GetPropertyResults *results,
|
|||||||
char *type_name;
|
char *type_name;
|
||||||
char *expected_name;
|
char *expected_name;
|
||||||
char *prop_name;
|
char *prop_name;
|
||||||
|
const char *title;
|
||||||
|
const char *res_class;
|
||||||
|
const char *res_name;
|
||||||
|
MetaWindow *w;
|
||||||
|
|
||||||
if (expected_format == results->format &&
|
if (expected_format == results->format &&
|
||||||
expected_type == results->type &&
|
expected_type == results->type &&
|
||||||
@ -121,14 +126,38 @@ validate_or_free_results (GetPropertyResults *results,
|
|||||||
prop_name = XGetAtomName (results->display->xdisplay, results->xatom);
|
prop_name = XGetAtomName (results->display->xdisplay, results->xatom);
|
||||||
meta_error_trap_pop (results->display, TRUE);
|
meta_error_trap_pop (results->display, TRUE);
|
||||||
|
|
||||||
meta_warning (_("Window 0x%lx has property %s\nthat was expected to have type %s format %d\nand actually has type %s format %d n_items %d.\nThis is most likely an application bug.\nUse \"xprop -id 0x%lx\" to print all properties on the problematic window.\nThe _NET_WM_NAME or WM_NAME or WM_CLASS properties should identify the application.\n"),
|
w = meta_display_lookup_x_window (results->display, results->xwindow);
|
||||||
|
|
||||||
|
if (w != NULL)
|
||||||
|
{
|
||||||
|
title = w->title;
|
||||||
|
res_class = w->res_class;
|
||||||
|
res_name = w->res_name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
title = NULL;
|
||||||
|
res_class = NULL;
|
||||||
|
res_name = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (title == NULL)
|
||||||
|
title = "unknown";
|
||||||
|
|
||||||
|
if (res_class == NULL)
|
||||||
|
res_class = "unknown";
|
||||||
|
|
||||||
|
if (res_name == NULL)
|
||||||
|
res_name = "unknown";
|
||||||
|
|
||||||
|
meta_warning (_("Window 0x%lx has property %s\nthat was expected to have type %s format %d\nand actually has type %s format %d n_items %d.\nThis is most likely an application bug not a window manager bug.\nThe window has title=\"%s\" class=\"%s\" name=\"%s\"\n"),
|
||||||
results->xwindow,
|
results->xwindow,
|
||||||
prop_name ? prop_name : "(bad atom)",
|
prop_name ? prop_name : "(bad atom)",
|
||||||
expected_name ? expected_name : "(bad atom)",
|
expected_name ? expected_name : "(bad atom)",
|
||||||
expected_format,
|
expected_format,
|
||||||
type_name ? type_name : "(bad atom)",
|
type_name ? type_name : "(bad atom)",
|
||||||
results->format, (int) results->n_items,
|
results->format, (int) results->n_items,
|
||||||
results->xwindow);
|
title, res_class, res_name);
|
||||||
|
|
||||||
if (type_name)
|
if (type_name)
|
||||||
XFree (type_name);
|
XFree (type_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user