*** gtkbutton.c	Thu Sep 25 03:29:12 1997
--- /home/wille/src/gtk+stefan/gtk/gtkbutton.c	Tue Oct  7 21:33:56 1997
***************
*** 854,859 ****
--- 854,865 ----
  
    if (GTK_WIDGET_STATE (button) != new_state)
      {
+       if (button->child)
+         {
+ 	  button->child->allocation.x += 1;
+ 	  button->child->allocation.y += 1;
+ 	}
+   
        gtk_widget_set_state (GTK_WIDGET (button), new_state);
        gtk_widget_queue_draw (GTK_WIDGET (button));
      }
***************
*** 863,869 ****
  gtk_real_button_released (GtkButton *button)
  {
    GtkStateType new_state;
! 
    g_return_if_fail (button != NULL);
    g_return_if_fail (GTK_IS_BUTTON (button));
  
--- 869,875 ----
  gtk_real_button_released (GtkButton *button)
  {
    GtkStateType new_state;
!   
    g_return_if_fail (button != NULL);
    g_return_if_fail (GTK_IS_BUTTON (button));
  
***************
*** 878,883 ****
--- 884,895 ----
  
        if (GTK_WIDGET_STATE (button) != new_state)
  	{
+           if (button->child)
+             {
+ 	      button->child->allocation.x -= 1;
+ 	      button->child->allocation.y -= 1;
+ 	    }
+ 	    
  	  gtk_widget_set_state (GTK_WIDGET (button), new_state);
  	  gtk_widget_queue_draw (GTK_WIDGET (button));
  	}
***************
*** 896,901 ****
--- 908,919 ----
  
    if (GTK_WIDGET_STATE (button) != new_state)
      {
+       if (button->child && button->button_down)
+         {
+   	  button->child->allocation.x += 1;
+ 	  button->child->allocation.y += 1;
+ 	}
+ 	    
        gtk_widget_set_state (GTK_WIDGET (button), new_state);
        gtk_widget_queue_draw (GTK_WIDGET (button));
      }
***************
*** 906,914 ****
  {
    g_return_if_fail (button != NULL);
    g_return_if_fail (GTK_IS_BUTTON (button));
! 
    if (GTK_WIDGET_STATE (button) != GTK_STATE_NORMAL)
      {
        gtk_widget_set_state (GTK_WIDGET (button), GTK_STATE_NORMAL);
        gtk_widget_queue_draw (GTK_WIDGET (button));
      }
--- 924,938 ----
  {
    g_return_if_fail (button != NULL);
    g_return_if_fail (GTK_IS_BUTTON (button));
!   
    if (GTK_WIDGET_STATE (button) != GTK_STATE_NORMAL)
      {
+       if (button->child && button->button_down)
+       {
+ 	button->child->allocation.x -= 1;
+ 	button->child->allocation.y -= 1;
+       }
+     
        gtk_widget_set_state (GTK_WIDGET (button), GTK_STATE_NORMAL);
        gtk_widget_queue_draw (GTK_WIDGET (button));
      }
