added new function gimp_displays_invalidate() which queues a redraw on all

2003-02-21  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplay-foreach.[ch]: added new function
	gimp_displays_invalidate() which queues a redraw on all displays
	by calling gimp_display_shell_expose_full().

	* app/display/gimpdisplayshell-render.c (render_setup_notify):
	invalidate all displays when the transparency type or size changes.

	* app/tools/gimptexttool.c (text_tool_button_press): readded some
	code I accidentally removed in my last commit.

	* app/text/gimptextlayout.c (gimp_text_layout_new): always set the
	font size but make sure it is at least 1.
This commit is contained in:
Sven Neumann
2003-02-21 21:39:42 +00:00
committed by Sven Neumann
parent bee928ebce
commit 9c957fa1d5
6 changed files with 41 additions and 4 deletions

View File

@ -1,3 +1,18 @@
2003-02-21 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplay-foreach.[ch]: added new function
gimp_displays_invalidate() which queues a redraw on all displays
by calling gimp_display_shell_expose_full().
* app/display/gimpdisplayshell-render.c (render_setup_notify):
invalidate all displays when the transparency type or size changes.
* app/tools/gimptexttool.c (text_tool_button_press): readded some
code I accidentally removed in my last commit.
* app/text/gimptextlayout.c (gimp_text_layout_new): always set the
font size but make sure it is at least 1.
2003-02-21 Sven Neumann <sven@gimp.org> 2003-02-21 Sven Neumann <sven@gimp.org>
* app/widgets/gimpviewabledialog.c: added missing cast. * app/widgets/gimpviewabledialog.c: added missing cast.

View File

@ -130,6 +130,24 @@ gimp_displays_flush (Gimp *gimp)
flushing = FALSE; flushing = FALSE;
} }
void
gimp_displays_invalidate (Gimp *gimp)
{
GList *list;
GimpDisplay *gdisp;
g_return_if_fail (GIMP_IS_GIMP (gimp));
for (list = GIMP_LIST (gimp->displays)->list;
list;
list = g_list_next (list))
{
gdisp = (GimpDisplay *) list->data;
gimp_display_shell_expose_full (GIMP_DISPLAY_SHELL (gdisp->shell));
}
}
/* Force all gdisplays to finish their idlerender projection */ /* Force all gdisplays to finish their idlerender projection */
void void
gimp_displays_finish_draw (Gimp *gimp) gimp_displays_finish_draw (Gimp *gimp)

View File

@ -26,6 +26,7 @@ GimpDisplay * gdisplays_check_valid (GimpDisplay *gdisp,
gboolean gimp_displays_dirty (Gimp *gimp); gboolean gimp_displays_dirty (Gimp *gimp);
void gimp_displays_delete (Gimp *gimp); void gimp_displays_delete (Gimp *gimp);
void gimp_displays_flush (Gimp *gimp); void gimp_displays_flush (Gimp *gimp);
void gimp_displays_invalidate (Gimp *gimp);
void gimp_displays_finish_draw (Gimp *gimp); void gimp_displays_finish_draw (Gimp *gimp);
void gimp_displays_reconnect (Gimp *gimp, void gimp_displays_reconnect (Gimp *gimp,
GimpImage *old, GimpImage *old,

View File

@ -35,6 +35,7 @@
#include "core/gimpimage-projection.h" #include "core/gimpimage-projection.h"
#include "gimpdisplay.h" #include "gimpdisplay.h"
#include "gimpdisplay-foreach.h"
#include "gimpdisplayshell.h" #include "gimpdisplayshell.h"
#include "gimpdisplayshell-filter.h" #include "gimpdisplayshell-filter.h"
#include "gimpdisplayshell-render.h" #include "gimpdisplayshell-render.h"
@ -250,6 +251,8 @@ render_setup_notify (gpointer config,
render_empty_buf = NULL; render_empty_buf = NULL;
render_temp_buf = NULL; render_temp_buf = NULL;
} }
gimp_displays_invalidate (gimp);
} }

View File

@ -173,8 +173,7 @@ gimp_text_layout_new (GimpText *text,
break; break;
} }
if (size > 1) pango_font_description_set_size (font_desc, MAX (1, size));
pango_font_description_set_size (font_desc, size);
context = gimp_image_get_pango_context (image); context = gimp_image_get_pango_context (image);

View File

@ -231,9 +231,10 @@ text_tool_button_press (GimpTool *tool,
} }
} }
gimp_text_tool_connect (GIMP_TEXT_TOOL (tool), text); if (!text || text == text_tool->text)
text_tool_editor (text_tool); text_tool_editor (text_tool);
gimp_text_tool_connect (GIMP_TEXT_TOOL (tool), text);
} }
static void static void