diff -urN pcb.orig/src/file.c pcb/src/file.c
--- pcb.orig/src/file.c 2005-06-10 23:37:36.000000000 -0500
+++ pcb/src/file.c 2005-06-24 14:10:23.459870366 -0500
@@ -213,6 +213,7 @@
LoadPCB (char *Filename)
{
PCBTypePtr newPCB = CreateNewPCB (False);
+ gboolean units_mm;
/* new data isn't added to the undo list */
if (!ParsePCB (newPCB, Filename))
@@ -252,8 +253,11 @@
UpdatePIPFlags (NULL, NULL, NULL, False);
UpdateSettingsOnScreen ();
- if (PCB->Grid != (gint) PCB->Grid)
- Settings.grid_units_mm = TRUE;
+ units_mm = (PCB->Grid != (gint) PCB->Grid) ? TRUE : FALSE;
+
+ if (units_mm != Settings.grid_units_mm)
+ gui_config_handle_units_changed();
+ Settings.grid_units_mm = units_mm;
gui_sync_with_new_layout();
diff -urN pcb.orig/src/gui-config.c pcb/src/gui-config.c
--- pcb.orig/src/gui-config.c 2005-06-07 20:34:25.000000000 -0500
+++ pcb/src/gui-config.c 2005-06-24 14:11:08.108866735 -0500
@@ -1796,6 +1796,10 @@
void
gui_config_handle_units_changed(void)
{
+ set_cursor_position_labels();
+ gtk_label_set_markup(GTK_LABEL(gui->cursor_units_label),
+ Settings.grid_units_mm ?
+ "mm " : "mil ");
if (config_sizes_vbox)
{
gtk_widget_destroy(config_sizes_vbox);
@@ -1808,6 +1812,7 @@
config_increments_vbox = NULL;
config_increments_tab_create(config_increments_tab_vbox);
}
+ Settings.config_modified = TRUE;
}
void
diff -urN pcb.orig/src/gui-top-window.c pcb/src/gui-top-window.c
--- pcb.orig/src/gui-top-window.c 2005-06-10 23:37:36.000000000 -0500
+++ pcb/src/gui-top-window.c 2005-06-24 14:10:48.911737709 -0500
@@ -432,10 +432,6 @@
ActionSetValue("Grid", grid, "");
g_free(grid);
- set_cursor_position_labels();
- gtk_label_set_markup(GTK_LABEL(gui->cursor_units_label),
- Settings.grid_units_mm ?
- "mm " : "mil ");
gui_config_handle_units_changed();
gui_change_selected_update_menu_actions();
}
diff -urN pcb.orig/src/global.h pcb/src/global.h
--- pcb.orig/src/global.h 2005-06-10 23:37:36.000000000 -0500
+++ pcb/src/global.h 2005-06-24 17:09:09.896422652 -0500
@@ -522,6 +522,7 @@
grid_units_mm,
small_layer_enable_label_markup,
gui_compact_horizontal,
+ gui_title_window,
use_command_window,
verbose;
diff -urN pcb.orig/src/gui-config.c pcb/src/gui-config.c
--- pcb.orig/src/gui-config.c 2005-06-07 20:34:25.000000000 -0500
+++ pcb/src/gui-config.c 2005-06-24 17:09:23.163954464 -0500
@@ -90,6 +90,7 @@
{
/* booleans */
{"gui-compact-horizontal", &Settings.gui_compact_horizontal, "0"},
+ {"gui-title-window", &Settings.gui_title_window, "0"},
{"use-command-window", &Settings.use_command_window, "1"},
{"grid-units-mm", &Settings.grid_units_mm, "0"},
{"all-direction-lines", &Settings.AllDirectionLines, "0"},
@@ -670,6 +671,17 @@
FALSE, FALSE, 0);
}
set_status_line_label();
+ Settings.config_modified = TRUE;
+ }
+
+static void
+config_title_window_cb(GtkToggleButton *button, gpointer data)
+ {
+ gboolean active = gtk_toggle_button_get_active(button);
+
+ Settings.gui_title_window = active;
+ gui_output_set_name_label(gui->name_label_string);
+ Settings.config_modified = TRUE;
}
static void
@@ -719,6 +731,11 @@
config_compact_toggle_cb, NULL,
_("Compact horizontal top window for narrow screens"));
+ gui_check_button_connected(vbox, NULL, Settings.gui_title_window,
+ TRUE, FALSE, FALSE, 2,
+ config_title_window_cb, NULL,
+ _("Put layout name on the window title bar"));
+
#if 0
/* Works poorly */
gui_check_button_connected(vbox, NULL, Settings.StipplePolygons,
diff -urN pcb.orig/src/gui-top-window.c pcb/src/gui-top-window.c
--- pcb.orig/src/gui-top-window.c 2005-06-10 23:37:36.000000000 -0500
+++ pcb/src/gui-top-window.c 2005-06-24 17:09:19.495636943 -0500
@@ -2259,15 +2259,31 @@
}
- /* Set the PCB name label.
+ /* Set the PCB name on a label or on the window title bar.
*/
void
gui_output_set_name_label(gchar *name)
{
gchar *str;
- str = g_strdup_printf(" %s ", name ? name : "Unnamed");
- gtk_label_set_markup(GTK_LABEL(gui->name_label), str);
+ dup_string(&gui->name_label_string, name);
+ if (!gui->name_label_string || !*gui->name_label_string)
+ gui->name_label_string = g_strdup(_("Unnamed"));
+
+ if (Settings.gui_title_window)
+ {
+ gtk_widget_hide(gui->name_label);
+ str = g_strdup_printf("PCB: %s", gui->name_label_string);
+ gtk_window_set_title(GTK_WINDOW(Output.top_window), str);
+ }
+ else
+ {
+ gtk_widget_show(gui->name_label);
+ str = g_strdup_printf(" %s ",
+ gui->name_label_string);
+ gtk_label_set_markup(GTK_LABEL(gui->name_label), str);
+ gtk_window_set_title(GTK_WINDOW(Output.top_window), "PCB");
+ }
g_free(str);
}
diff -urN pcb.orig/src/gui.h pcb/src/gui.h
--- pcb.orig/src/gui.h 2005-03-13 08:59:49.000000000 -0600
+++ pcb/src/gui.h 2005-06-24 17:09:09.901421722 -0500
@@ -109,6 +109,8 @@
GtkObject *h_adjustment,
*v_adjustment;
+ gchar *name_label_string;
+
gboolean adjustment_changed_holdoff,
toggle_holdoff,
command_entry_status_line_active;
diff -urN pcb.orig/src/find.c pcb/src/find.c
--- pcb.orig/src/find.c 2005-03-11 20:17:11.000000000 -0600
+++ pcb/src/find.c 2005-03-28 23:34:58.611566448 -0600
@@ -152,7 +152,7 @@
* message when asked about continuing DRC checks after first
* violation is found.
*/
-#define DRC_CONTINUE _("Stop here? (Cancel to continue checking)")
+#define DRC_CONTINUE _("Press OK to continue DRC checking")
/* ---------------------------------------------------------------------------
* some local types
@@ -3466,7 +3466,7 @@
drc = False;
drcerr_count++;
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
return (True);
IncrementUndoSerialNumber ();
Undo (True);
@@ -3506,7 +3506,7 @@
GotoError ();
User = False;
drc = False;
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
return (True);
IncrementUndoSerialNumber ();
Undo (True);
@@ -3622,7 +3622,7 @@
DrawObject (type, ptr1, ptr2, 0);
drcerr_count++;
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
return 1;
@@ -3724,7 +3724,7 @@
drcerr_count++;
SetThing (LINE_TYPE, layer, line, line);
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3748,7 +3748,7 @@
drcerr_count++;
SetThing (ARC_TYPE, layer, arc, arc);
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3773,7 +3773,7 @@
drcerr_count++;
SetThing (PIN_TYPE, element, pin, pin);
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3797,7 +3797,7 @@
drcerr_count++;
SetThing (PAD_TYPE, element, pad, pad);
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3822,7 +3822,7 @@
drcerr_count++;
SetThing (VIA_TYPE, via, via, via);
GotoError ();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3854,7 +3854,7 @@
drcerr_count++;
SetThing(LINE_TYPE, layer, line, line);
GotoError();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3887,7 +3887,7 @@
drcerr_count++;
SetThing(ELEMENT_TYPE, element, element, element);
GotoError();
- if (gui_dialog_confirm(DRC_CONTINUE))
+ if (!gui_dialog_confirm(DRC_CONTINUE))
{
IsBad = True;
break;
@@ -3973,9 +3973,11 @@
case LINE_TYPE:
case ARC_TYPE:
case POLYGON_TYPE:
- g_message("GotoError: ChangeGroupVisibility (GetLayerNumber");
+ ChangeGroupVisibility (GetLayerNumber
+ (PCB->Data, (LayerTypePtr) thing_ptr1), True,
+ True);
}
- CenterDisplay (X, Y, False);
+ CenterDisplay (X, Y - TO_PCB(Output.Height / 4), False);
}
void
diff -urN pcb.orig/src/gui-utils.c pcb/src/gui-utils.c
--- pcb.orig/src/gui-utils.c 2005-03-11 20:17:12.000000000 -0600
+++ pcb/src/gui-utils.c 2005-03-28 23:46:42.001180627 -0600
@@ -642,6 +642,7 @@
{
GtkTextIter iter;
GtkTextBuffer *buffer;
+ GtkTextMark *mark;
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
gtk_text_buffer_get_end_iter(buffer, &iter);
@@ -664,6 +665,11 @@
s + 4, -1, "underline", NULL);
else
gtk_text_buffer_insert(buffer, &iter, s, -1);
+
+ mark = gtk_text_buffer_create_mark(buffer, NULL, &iter, FALSE);
+ gtk_text_view_scroll_to_mark(GTK_TEXT_VIEW(view), mark,
+ 0, TRUE, 0.0, 1.0);
+ gtk_text_buffer_delete_mark(buffer, mark);
}
void
diff -Naur pcb-20050609.orig/src/gui-library-window.c pcb-20050609/src/gui-library-window.c
--- pcb-20050609.orig/src/gui-library-window.c 2005-02-27 12:54:16.000000000 -0500
+++ pcb-20050609/src/gui-library-window.c 2005-09-24 14:32:13.000000000 -0400
@@ -322,6 +322,6 @@
| don't want.
*/
gtk_widget_realize(library_window);
- gdk_window_set_accept_focus(library_window->window, FALSE);
+ // gdk_window_set_accept_focus(library_window->window, FALSE);
gtk_widget_show_all(library_window);
}