# define HEIGHT 48
#endif
if (textview->image) {
+ GtkAllocation allocation;
gint x, y, x1;
- x1 = textview->text->allocation.width - WIDTH - 5;
+ gtk_widget_get_allocation(textview->text, &allocation);
+ x1 = allocation.width - WIDTH - 5;
gtk_text_view_buffer_to_window_coords(
GTK_TEXT_VIEW(textview->text),
GTK_TEXT_WINDOW_TEXT, x1, 5, &x, &y);
{
GtkTextBuffer *buffer;
GtkTextTag *tag, *qtag;
+#if !GTK_CHECK_VERSION(3, 0, 0)
static GdkColor yellow, black;
static gboolean color_init = FALSE;
+#else
+ static GdkColor yellow = { (guint32)0, (guint16)0xf5, (guint16)0xf6, (guint16)0xbe };
+ static GdkColor black = { (guint32)0, (guint16)0x0, (guint16)0x0, (guint16)0x0 };
+#endif
static PangoFontDescription *font_desc, *bold_font_desc;
+#if !GTK_CHECK_VERSION(3, 0, 0)
if (!color_init) {
gdk_color_parse("#f5f6be", &yellow);
gdk_color_parse("#000000", &black);
color_init &= gdk_colormap_alloc_color(
gdk_colormap_get_system(), &black, FALSE, TRUE);
}
+#endif
if (!font_desc)
font_desc = pango_font_description_from_string
static void textview_add_part(TextView *textview, MimeInfo *mimeinfo)
{
+ GtkAllocation allocation;
GtkTextView *text;
GtkTextBuffer *buffer;
GtkTextIter iter, start_iter;
return;
}
+ gtk_widget_get_allocation(textview->scrolledwin, &allocation);
pixbuf = claws_load_pixbuf_fitting(pixbuf,
- textview->scrolledwin->allocation.width,
- textview->scrolledwin->allocation.height);
+ allocation.width,
+ allocation.height);
if (textview->stop_loading) {
return;
static void textview_show_face(TextView *textview)
{
+ GtkAllocation allocation;
GtkTextView *text = GTK_TEXT_VIEW(textview->text);
MsgInfo *msginfo = textview->messageview->msginfo;
int x = 0;
gtk_widget_show(textview->image);
- x = textview->text->allocation.width - WIDTH -5;
+ gtk_widget_get_allocation(textview->text, &allocation);
+ x = allocation.width - WIDTH -5;
gtk_text_view_add_child_in_window(text, textview->image,
GTK_TEXT_WINDOW_TEXT, x, 5);
void textview_show_icon(TextView *textview, const gchar *stock_id)
{
+ GtkAllocation allocation;
GtkTextView *text = GTK_TEXT_VIEW(textview->text);
int x = 0;
gtk_widget_show(textview->image);
- x = textview->text->allocation.width - WIDTH -5;
+ gtk_widget_get_allocation(textview->text, &allocation);
+ x = allocation.width - WIDTH -5;
gtk_text_view_add_child_in_window(text, textview->image,
GTK_TEXT_WINDOW_TEXT, x, 5);
static void textview_show_contact_pic(TextView *textview)
{
+ GtkAllocation allocation;
MsgInfo *msginfo = textview->messageview->msginfo;
GtkTextView *text = GTK_TEXT_VIEW(textview->text);
int x = 0;
gtk_widget_show(textview->image);
- x = textview->text->allocation.width - WIDTH -5;
+ gtk_widget_get_allocation(textview->text, &allocation);
+ x = allocation.width - WIDTH -5;
gtk_text_view_add_child_in_window(text, textview->image,
GTK_TEXT_WINDOW_TEXT, x, 5);
void textview_scroll_one_line(TextView *textview, gboolean up)
{
GtkTextView *text = GTK_TEXT_VIEW(textview->text);
- GtkAdjustment *vadj = text->vadjustment;
+ GtkAdjustment *vadj = gtk_text_view_get_vadjustment(text);
gtkutils_scroll_one_line(GTK_WIDGET(text), vadj, up);
}
gboolean textview_scroll_page(TextView *textview, gboolean up)
{
GtkTextView *text = GTK_TEXT_VIEW(textview->text);
- GtkAdjustment *vadj = text->vadjustment;
+ GtkAdjustment *vadj = gtk_text_view_get_vadjustment(text);
return gtkutils_scroll_page(GTK_WIDGET(text), vadj, up);
}
+void textview_scroll_max(TextView *textview, gboolean up)
+{
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview->text));
+ GtkTextIter iter;
+
+ if (up) {
+ gtk_text_buffer_get_start_iter(buffer, &iter);
+ gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview->text),
+ &iter, 0.0, TRUE, 0.0, 1.0);
+
+ } else {
+ gtk_text_buffer_get_end_iter(buffer, &iter);
+ gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(textview->text),
+ &iter, 0.0, TRUE, 0.0, 0.0);
+ }
+}
+
#define KEY_PRESS_EVENT_STOP() \
g_signal_stop_emission_by_name(G_OBJECT(widget), \
"key_press_event");
static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
TextView *textview)
{
+ GdkWindow *window;
SummaryView *summaryview = NULL;
MessageView *messageview = textview->messageview;
summaryview = messageview->mainwin->summaryview;
switch (event->keyval) {
- case GDK_Tab:
- case GDK_Home:
- case GDK_Left:
- case GDK_Up:
- case GDK_Right:
- case GDK_Down:
- case GDK_Page_Up:
- case GDK_Page_Down:
- case GDK_End:
- case GDK_Control_L:
- case GDK_Control_R:
+ case GDK_KEY_Tab:
+ case GDK_KEY_Left:
+ case GDK_KEY_Up:
+ case GDK_KEY_Right:
+ case GDK_KEY_Down:
+ case GDK_KEY_Page_Up:
+ case GDK_KEY_Page_Down:
+ case GDK_KEY_Control_L:
+ case GDK_KEY_Control_R:
return FALSE;
- case GDK_space:
+ case GDK_KEY_Home:
+ case GDK_KEY_End:
+ textview_scroll_max(textview,(event->keyval == GDK_KEY_Home));
+ return TRUE;
+ case GDK_KEY_space:
if (summaryview)
summary_pass_key_press_event(summaryview, event);
else
(event->state &
(GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
break;
- case GDK_BackSpace:
+ case GDK_KEY_BackSpace:
mimeview_scroll_page(messageview->mimeview, TRUE);
break;
- case GDK_Return:
- case GDK_KP_Enter:
+ case GDK_KEY_Return:
+ case GDK_KEY_KP_Enter:
mimeview_scroll_one_line
(messageview->mimeview, (event->state &
(GDK_SHIFT_MASK|GDK_MOD1_MASK)) != 0);
break;
- case GDK_Delete:
+ case GDK_KEY_Delete:
if (summaryview)
summary_pass_key_press_event(summaryview, event);
break;
- case GDK_y:
- case GDK_t:
- case GDK_l:
- case GDK_o:
- case GDK_c:
- case GDK_a:
+ case GDK_KEY_y:
+ case GDK_KEY_t:
+ case GDK_KEY_l:
+ case GDK_KEY_o:
+ case GDK_KEY_c:
+ case GDK_KEY_a:
if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) == 0) {
KEY_PRESS_EVENT_STOP();
mimeview_pass_key_press_event(messageview->mimeview,
}
/* possible fall through */
default:
+ window = gtk_widget_get_window(messageview->mainwin->window);
if (summaryview &&
- event->window != messageview->mainwin->window->window) {
+ event->window != window) {
GdkEventKey tmpev = *event;
- tmpev.window = messageview->mainwin->window->window;
+ tmpev.window = window;
KEY_PRESS_EVENT_STOP();
gtk_widget_event(messageview->mainwin->window,
(GdkEvent *)&tmpev);
if (textview->loading)
return FALSE;
textview_uri_update(textview, event->x, event->y);
- gdk_window_get_pointer(widget->window, NULL, NULL, NULL);
+ gdk_window_get_pointer(gtk_widget_get_window(widget), NULL, NULL, NULL);
return FALSE;
}
if (window != event->window)
return FALSE;
- gdk_window_get_pointer(widget->window, &wx, &wy, NULL);
+ gdk_window_get_pointer(gtk_widget_get_window(widget), &wx, &wy, NULL);
textview_uri_update(textview, wx, wy);
return FALSE;