Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-17 Thread Giuseppe Penone via gtk-list
Hi Eric,

thanks for looking at the problem, in fact it looks like stopping the event
to reach the below text view does the trick:

textViewNested.signal_button_press_event().connect([](GdkEventButton*
pEvent){ return true; });

Cheers,
Giuseppe.


On Sat, 16 Feb 2019 at 19:59,  wrote:

> Hi Giuseppe,
>
> It looks like you are going to need to set up a callback and grab the
> focus of that uncooperative nested textview. It should work with GTK3.
>
> Eric
>
>
> //gcc -Wall codebox1.c -o codebox1 `pkg-config --cflags --libs gtk+-3.0`
>
> #include
>
> static void get_focus(GtkWidget *button, GtkWidget *text_view_nested)
>   {
> g_print("Grab Focus Button\n");
> gtk_widget_grab_focus(text_view_nested);
>   }
> gboolean grab_focus(GtkWidget *widget, GdkEvent *event, gpointer user_data)
>   {
> g_print("Grab Focus Click\n");
> gtk_widget_grab_focus(widget);
> return TRUE;
>   }
> int main(int argc, char *argv[])
>   {
> gtk_init(, );
>
> GtkWidget *window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
> gtk_window_set_title(GTK_WINDOW(window), "CodeBox");
> gtk_window_set_default_size(GTK_WINDOW(window), 450, 450);
> gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
> gtk_container_set_border_width(GTK_CONTAINER(window), 20);
> g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
>
> GtkWidget *text_view_base=gtk_text_view_new();
> gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view_base),
> GTK_WRAP_CHAR);
> gtk_widget_set_hexpand(text_view_base, TRUE);
> gtk_widget_set_vexpand(text_view_base, TRUE);
>
> GtkTextIter iter;
> GtkTextBuffer
> *r_buffer_base=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view_base));
> gtk_text_buffer_get_end_iter(r_buffer_base, );
> gtk_text_buffer_insert(r_buffer_base, , "Anchored TextView
> below:\n==>", -1);
>
> GtkWidget *text_view_nested=gtk_text_view_new();
> gtk_widget_set_size_request(text_view_nested, 100, 50);
> gtk_widget_set_name(text_view_nested, "cyan_view");
> gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view_nested),
> GTK_WRAP_CHAR);
> gtk_widget_set_hexpand(text_view_nested, TRUE);
> gtk_widget_set_vexpand(text_view_nested, TRUE);
> GtkTextBuffer
> *s_buffer_base=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view_nested));
>
> gtk_text_buffer_get_end_iter(s_buffer_base, );
> gtk_text_buffer_insert(s_buffer_base, , "Nested buffer space.",
> -1);
> g_signal_connect(text_view_nested, "button-press-event",
> G_CALLBACK(grab_focus), NULL);
>
> GtkWidget *scroll=gtk_scrolled_window_new(NULL, NULL);
> gtk_widget_set_hexpand(scroll, TRUE);
> gtk_widget_set_vexpand(scroll, TRUE);
> gtk_widget_set_size_request(scroll, 100, 50);
> gtk_container_add(GTK_CONTAINER(scroll), text_view_nested);
>
> GtkWidget *entry_nested=gtk_entry_new();
>
> gtk_text_buffer_get_end_iter(r_buffer_base, );
> GtkTextChildAnchor
> *r_anchor_text_view=gtk_text_buffer_create_child_anchor(r_buffer_base,
> );
> gtk_text_buffer_get_end_iter(r_buffer_base, );
> gtk_text_buffer_insert(r_buffer_base, , "<==\nAnchored TextView
> above^\n\nAnchored Entry below:\n==>", -1);
> gtk_text_buffer_get_end_iter(r_buffer_base, );
> GtkTextChildAnchor
> *r_anchor_entry=gtk_text_buffer_create_child_anchor(r_buffer_base, );
> gtk_text_buffer_get_end_iter(r_buffer_base, );
> gtk_text_buffer_insert(r_buffer_base, , "<==\nAnchored Entry
> above^\n", -1);
>
> gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(text_view_base),
> scroll, r_anchor_text_view);
> gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(text_view_base),
> entry_nested, r_anchor_entry);
>
> GtkWidget *button=gtk_button_new_with_label("Get Focus");
> g_signal_connect(button, "clicked", G_CALLBACK(get_focus),
> text_view_nested);
>
> GtkWidget *grid=gtk_grid_new();
> gtk_grid_attach(GTK_GRID(grid), text_view_base, 0, 0, 1, 1);
> gtk_grid_attach(GTK_GRID(grid), button, 0, 1, 1, 1);
> gtk_container_add(GTK_CONTAINER(window), grid);
>
> gtk_widget_show_all(window);
>
> GError *css_error=NULL;
> gchar *css_string1=NULL;
> css_string1=g_strdup("#cyan_view{background: cyan;}");
> GtkCssProvider *provider=gtk_css_provider_new();
> GdkDisplay *display=gdk_display_get_default();
> GdkScreen *screen=gdk_display_get_default_screen(display);
> gtk_style_context_add_provider_for_screen(screen,
> GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
> gtk_css_provider_load_from_data(provider, css_string1, -1, _error);
>
> if(css_error!=NULL)
>   {
> g_print("CSS loader error %s\n", css_error->message);
> g_error_free(css_error);
>   }
> g_object_unref(provider);
> if(css_string1!=NULL) g_free(css_string1);
>
> gtk_main();
>
> return 0;
>   }
>
>
>
>
___
gtk-list mailing list
gtk-list@gnome.org

Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-16 Thread Eric Cashon via gtk-list
 Hi Giuseppe,

It looks like you are going to need to set up a callback and grab the focus of 
that uncooperative nested textview. It should work with GTK3.

Eric
     
//gcc -Wall codebox1.c -o codebox1 `pkg-config --cflags --libs gtk+-3.0`

#include

static void get_focus(GtkWidget *button, GtkWidget *text_view_nested)
  {
    g_print("Grab Focus Button\n");
    gtk_widget_grab_focus(text_view_nested);
  }
gboolean grab_focus(GtkWidget *widget, GdkEvent *event, gpointer user_data)
  {
    g_print("Grab Focus Click\n");
    gtk_widget_grab_focus(widget);
    return TRUE;
  }
int main(int argc, char *argv[])
  {
    gtk_init(, );

    GtkWidget *window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "CodeBox");
    gtk_window_set_default_size(GTK_WINDOW(window), 450, 450);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_container_set_border_width(GTK_CONTAINER(window), 20);
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

    GtkWidget *text_view_base=gtk_text_view_new();
    gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view_base), GTK_WRAP_CHAR);
    gtk_widget_set_hexpand(text_view_base, TRUE);
    gtk_widget_set_vexpand(text_view_base, TRUE);

    GtkTextIter iter;
    GtkTextBuffer 
*r_buffer_base=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view_base));    
    gtk_text_buffer_get_end_iter(r_buffer_base, );
    gtk_text_buffer_insert(r_buffer_base, , "Anchored TextView 
below:\n==>", -1);

    GtkWidget *text_view_nested=gtk_text_view_new();
    gtk_widget_set_size_request(text_view_nested, 100, 50);
    gtk_widget_set_name(text_view_nested, "cyan_view");
    gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view_nested), GTK_WRAP_CHAR);
    gtk_widget_set_hexpand(text_view_nested, TRUE);
    gtk_widget_set_vexpand(text_view_nested, TRUE);
    GtkTextBuffer 
*s_buffer_base=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view_nested));    
    gtk_text_buffer_get_end_iter(s_buffer_base, );
    gtk_text_buffer_insert(s_buffer_base, , "Nested buffer space.", -1);
    g_signal_connect(text_view_nested, "button-press-event", 
G_CALLBACK(grab_focus), NULL);

    GtkWidget *scroll=gtk_scrolled_window_new(NULL, NULL);
    gtk_widget_set_hexpand(scroll, TRUE);
    gtk_widget_set_vexpand(scroll, TRUE);
    gtk_widget_set_size_request(scroll, 100, 50);
    gtk_container_add(GTK_CONTAINER(scroll), text_view_nested);

    GtkWidget *entry_nested=gtk_entry_new();

    gtk_text_buffer_get_end_iter(r_buffer_base, );
    GtkTextChildAnchor 
*r_anchor_text_view=gtk_text_buffer_create_child_anchor(r_buffer_base, );
    gtk_text_buffer_get_end_iter(r_buffer_base, );
    gtk_text_buffer_insert(r_buffer_base, , "<==\nAnchored TextView 
above^\n\nAnchored Entry below:\n==>", -1);
    gtk_text_buffer_get_end_iter(r_buffer_base, );
    GtkTextChildAnchor 
*r_anchor_entry=gtk_text_buffer_create_child_anchor(r_buffer_base, );
    gtk_text_buffer_get_end_iter(r_buffer_base, );
    gtk_text_buffer_insert(r_buffer_base, , "<==\nAnchored Entry 
above^\n", -1);

    gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(text_view_base), scroll, 
r_anchor_text_view);
    gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(text_view_base), 
entry_nested, r_anchor_entry);

    GtkWidget *button=gtk_button_new_with_label("Get Focus");
    g_signal_connect(button, "clicked", G_CALLBACK(get_focus), 
text_view_nested);

    GtkWidget *grid=gtk_grid_new();
    gtk_grid_attach(GTK_GRID(grid), text_view_base, 0, 0, 1, 1);
    gtk_grid_attach(GTK_GRID(grid), button, 0, 1, 1, 1);
    gtk_container_add(GTK_CONTAINER(window), grid);

    gtk_widget_show_all(window);

    GError *css_error=NULL;
    gchar *css_string1=NULL;   
    css_string1=g_strdup("#cyan_view{background: cyan;}");
    GtkCssProvider *provider=gtk_css_provider_new();
    GdkDisplay *display=gdk_display_get_default();
    GdkScreen *screen=gdk_display_get_default_screen(display);
    gtk_style_context_add_provider_for_screen(screen, 
GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
    gtk_css_provider_load_from_data(provider, css_string1, -1, _error);

    if(css_error!=NULL)
  {
    g_print("CSS loader error %s\n", css_error->message);
    g_error_free(css_error);
  }
    g_object_unref(provider);
    if(css_string1!=NULL) g_free(css_string1);
    
    gtk_main();

    return 0;
  }



___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list


Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-13 Thread Giuseppe Penone via gtk-list
Hi Andres, in my application cherrytree I give the user the possibility to
have so called code boxes ( http://giuspen.com/cherrytreemanual/#_codebox )
so in between rich text you can have a syntax highlighted code box.
This is very appreciated from the end users and it's a pity that gtk3 does
not seem to support it while gtk2 did.
Regards,
Giuseppe.

On Wed, 13 Feb 2019, 10:53 Andres Fernandez 
>
> El jue., 7 de feb. de 2019 04:42, Giuseppe Penone via gtk-list <
> gtk-list@gnome.org> escribió:
>
>> The problem happens only building for GTK3; building the exact same code
>> for GTK2 works fine.
>>
>> In the code, posted to
>> ://stackoverflow.com/questions/54529359/gtkmm-3-text-view-anchored-in-text-view-cannot-get-cursor-inside
>> 
>> , I'm having a text view anchored into another text view. The problem is
>> that even if I mouse click, I cannot have the cursor move inside the nested
>> text view to write text. The cursor can instead easily get into the
>> anchored text entry just below.
>>
> I'm trying to understand what are you nesting two GtkTextView. What are
> trying to get? I mean, GtkTextView is meant to show text from a buffer not
> to contain another widget.
>
> Is there no other desing that fit better with the porpuse of those widget
> but still giving you something near to your original idea?
>
>
> Regards,
>
> Andrés Fernández
> Software Peronista
>
>>
>>
___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list


Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-13 Thread Emmanuele Bassi via gtk-list
The list is not really dead, but nobody is required to give you an answer:
this is not a paid support channel.

If you're not getting answers it may be the case that you're doing
something that nobody else is doing.

Ciao,
 Emmanuele.

On Wed, 13 Feb 2019 at 08:38, Giuseppe Torelli via gtk-list <
gtk-list@gnome.org> wrote:

> Unfortunately this ML is dead. You rarely get any replies.
>
> Regards
> Giutor
>
> On Wed, 13 Feb 2019 at 08:35, Giuseppe Penone via gtk-list <
> gtk-list@gnome.org> wrote:
>
>> Please could somebody tell me where is the best place to report such
>> problem?  This is stopping the porting of my app cherrytree from pygtk2 to
>> gtkmm3.
>> I also raised a bug on https://gitlab.gnome.org/GNOME/gtk/issues/1663 but
>> got no feedback at all.
>> Regards,
>> Giuseppe.
>>
>>
>> On Thu, 7 Feb 2019, 07:42 Giuseppe Penone >
>>> The problem happens only building for GTK3; building the exact same code
>>> for GTK2 works fine.
>>>
>>> In the code, posted to
>>> https://stackoverflow.com/questions/54529359/gtkmm-3-text-view-anchored-in-text-view-cannot-get-cursor-inside
>>> , I'm having a text view anchored into another text view. The problem is
>>> that even if I mouse click, I cannot have the cursor move inside the nested
>>> text view to write text. The cursor can instead easily get into the
>>> anchored text entry just below.
>>>
>>> Please if there is a way to make it work help me, this is getting in the
>>> way of my app porting from pygtk2 to gtkmm3.
>>>
>>> Regards,
>>>
>>> giuspen.
>>>
>> ___
>> gtk-list mailing list
>> gtk-list@gnome.org
>> https://mail.gnome.org/mailman/listinfo/gtk-list
>>
> ___
> gtk-list mailing list
> gtk-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-list
>


-- 
https://www.bassi.io
[@] ebassi [@gmail.com]
___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list


Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-13 Thread Andres Fernandez
El jue., 7 de feb. de 2019 04:42, Giuseppe Penone via gtk-list <
gtk-list@gnome.org> escribió:

> The problem happens only building for GTK3; building the exact same code
> for GTK2 works fine.
>
> In the code, posted to
> https://stackoverflow.com/questions/54529359/gtkmm-3-text-view-anchored-in-text-view-cannot-get-cursor-inside
> , I'm having a text view anchored into another text view. The problem is
> that even if I mouse click, I cannot have the cursor move inside the nested
> text view to write text. The cursor can instead easily get into the
> anchored text entry just below.
>
I'm trying to understand what are you nesting two GtkTextView. What are
trying to get? I mean, GtkTextView is meant to show text from a buffer not
to contain another widget.

Is there no other desing that fit better with the porpuse of those widget
but still giving you something near to your original idea?


Regards,

Andrés Fernández
Software Peronista

>
>
___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list


Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-13 Thread Giuseppe Torelli via gtk-list
Unfortunately this ML is dead. You rarely get any replies.

Regards
Giutor

On Wed, 13 Feb 2019 at 08:35, Giuseppe Penone via gtk-list <
gtk-list@gnome.org> wrote:

> Please could somebody tell me where is the best place to report such
> problem?  This is stopping the porting of my app cherrytree from pygtk2 to
> gtkmm3.
> I also raised a bug on https://gitlab.gnome.org/GNOME/gtk/issues/1663 but
> got no feedback at all.
> Regards,
> Giuseppe.
>
>
> On Thu, 7 Feb 2019, 07:42 Giuseppe Penone 
>> The problem happens only building for GTK3; building the exact same code
>> for GTK2 works fine.
>>
>> In the code, posted to
>> https://stackoverflow.com/questions/54529359/gtkmm-3-text-view-anchored-in-text-view-cannot-get-cursor-inside
>> , I'm having a text view anchored into another text view. The problem is
>> that even if I mouse click, I cannot have the cursor move inside the nested
>> text view to write text. The cursor can instead easily get into the
>> anchored text entry just below.
>>
>> Please if there is a way to make it work help me, this is getting in the
>> way of my app porting from pygtk2 to gtkmm3.
>>
>> Regards,
>>
>> giuspen.
>>
> ___
> gtk-list mailing list
> gtk-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-list
>
___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list


Re: Gtk3 text view anchored in text view cannot get cursor inside (Ok in Gtk2)

2019-02-13 Thread Giuseppe Penone via gtk-list
Please could somebody tell me where is the best place to report such
problem?  This is stopping the porting of my app cherrytree from pygtk2 to
gtkmm3.
I also raised a bug on https://gitlab.gnome.org/GNOME/gtk/issues/1663 but
got no feedback at all.
Regards,
Giuseppe.


On Thu, 7 Feb 2019, 07:42 Giuseppe Penone  The problem happens only building for GTK3; building the exact same code
> for GTK2 works fine.
>
> In the code, posted to
> https://stackoverflow.com/questions/54529359/gtkmm-3-text-view-anchored-in-text-view-cannot-get-cursor-inside
> , I'm having a text view anchored into another text view. The problem is
> that even if I mouse click, I cannot have the cursor move inside the nested
> text view to write text. The cursor can instead easily get into the
> anchored text entry just below.
>
> Please if there is a way to make it work help me, this is getting in the
> way of my app porting from pygtk2 to gtkmm3.
>
> Regards,
>
> giuspen.
>
___
gtk-list mailing list
gtk-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-list