help window creash fix

This commit is contained in:
Chitlesh GOORAH 2009-02-21 23:54:49 +00:00
parent 1164ea733a
commit c6e1fded69
3 changed files with 61 additions and 1 deletions

View File

@ -1 +1,2 @@
ngspice-18-1_fc10:HEAD:ngspice-18-1.fc10.src.rpm:1231713849
ngspice-18-2_fc10:HEAD:ngspice-18-2.fc10.src.rpm:1235260319

51
ngspice-18-help.patch Normal file
View File

@ -0,0 +1,51 @@
--- src/frontend/help/x11disp.c 2005-09-06 22:21:09.000000000 +0200
+++ x11disp.c 2009-02-21 18:58:58.000000000 +0100
@@ -2,7 +2,7 @@
Copyright 1990 Regents of the University of California. All rights reserved.
Author: Jeffrey M. Hsu
Modified 1999 Emmanuel Rouat
-$Id: x11disp.c,v 1.3 2005/09/06 20:21:09 sjborley Exp $
+$Id: x11disp.c,v 1.4 2009/02/20 18:25:21 h_vogt Exp $
**********/
#include <config.h>
@@ -25,6 +25,24 @@
static topic *topics = NULL;
void newtopic(Widget w, caddr_t client_data, caddr_t call_data), delete(Widget w, caddr_t client_data, caddr_t call_data), quit(Widget w, caddr_t client_data, caddr_t call_data);
static void sputline(char *buf, char *s);
+/* atoms for catching window delet by WM x-button */
+static Atom atom_wm_delete_window;
+static Atom atom_wm_protocols;
+static Display *display;
+
+/* callback function for catching window deletion by WM x-button */
+static void handle_wm_messages(Widget w, XtPointer client_data, XEvent *event, Boolean *cont) {
+ topic *top = (topic *) client_data;
+
+ if (event->type == ClientMessage
+ && event->xclient.message_type == atom_wm_protocols
+ && event->xclient.data.l[0] == atom_wm_delete_window)
+ {
+ hlp_killfamily(top);
+ hlp_fixchildren(top);
+ }
+}
+
/* Create a new window... */
bool
@@ -191,6 +209,14 @@
top->winlink = topics;
topics = top;
+
+ /* WM_DELETE_WINDOW protocol */
+ display = XtDisplay(top->shellwidget);
+ atom_wm_protocols = XInternAtom(display, "WM_PROTOCOLS", False);
+ atom_wm_delete_window = XInternAtom(display, "WM_DELETE_WINDOW", False);
+ XtAddEventHandler(top->shellwidget, NoEventMask, True, handle_wm_messages, top);
+ XSetWMProtocols(display, XtWindow(top->shellwidget), &atom_wm_delete_window, 1);
+
return (TRUE);
}

View File

@ -1,6 +1,6 @@
Name: ngspice
Version: 18
Release: 1%{?dist}
Release: 2%{?dist}
Summary: A mixed level/signal circuit simulator
License: BSD
@ -10,6 +10,8 @@ URL: http://%{name}.sourceforge.net/
Source0: http://ovh.dl.sourceforge.net/sourceforge/%{name}/ng-spice-rework-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Patch0: ngspice-18-help.patch
BuildRequires: readline-devel, libXext-devel, libpng-devel, libICE-devel
BuildRequires: libXaw-devel, mesa-libGL-devel, libXt-devel
@ -51,6 +53,7 @@ and info format.
%prep
%setup -q -n ng-spice-rework-%{version}
%patch0 -p0 -b .help
%build
%ifarch x86_64 sparc64 ppc64 amd64
@ -64,6 +67,8 @@ cat src/spinit.in.ngspice | sed \
> src/spinit.in
%endif
./autogen.sh
%configure \
--enable-xgraph \
--enable-xspice \
@ -130,6 +135,9 @@ cat src/spinit.in.ngspice | sed \
%doc Stuarts_Poly_Notes FAQ DEVICES ANALYSES
%Changelog
* Sat Feb 21 2009 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> 18-2
- x11 windows (help and plot) fixes #RHBZ 481525
* Sat Jan 10 2009 Chitlesh Goorah <chitlesh [AT] fedoraproject DOT org> 18-1
- new upstream release